Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/arranger/jarl/shell/views/mainShellPanes/MSPFrameSlider.java


1   package com.arranger.jarl.shell.views.mainShellPanes;
2   
3   import com.arranger.jarl.shell.models.BaseModel;
4   import com.arranger.jarl.shell.models.JarlContextModel;
5   
6   import javax.swing.*;
7   import javax.swing.border.TitledBorder;
8   import javax.swing.event.ChangeEvent;
9   import javax.swing.event.ChangeListener;
10  import java.awt.*;
11  import java.util.Hashtable;
12  
13  /**
14   * MSPFrameSlider created on Apr 21, 2003
15   */
16  public class MSPFrameSlider extends BaseMSP {
17  
18      protected JSlider m_slider;
19      protected TitledBorder m_titledBorder;
20      protected boolean m_isUpdating = false;
21  
22      /**
23       * Create a component
24       * @return
25       */
26      public Component createComponent() {
27          m_slider = new JSlider(JSlider.HORIZONTAL);
28          m_slider.setPaintTicks(true);
29          m_slider.setPaintTrack(true);
30          m_slider.setPaintLabels(true);
31  
32          m_slider.setBorder(m_titledBorder = BorderFactory.createTitledBorder("Current Frame"));
33          setOptions();
34  
35          m_slider.addChangeListener(new ChangeListener() {
36              public void stateChanged(ChangeEvent e) {
37                  if (!m_isUpdating) {
38                      JarlContextModel jarlContextModel = getJarlContextModel();
39                      jarlContextModel.setCurrentFrame(m_slider.getValue());
40                  }
41              }
42          });
43  
44          return m_slider;
45      }
46  
47      /**
48       * Events have been fired
49       * @param baseModel
50       * @param propertyName
51       */
52      public void onChange(BaseModel baseModel, String propertyName) {
53          if (baseModel instanceof JarlContextModel &&
54                  JarlContextModel.CURRENT_CONFIG.equals(propertyName) ||
55                  JarlContextModel.CURRENT_FRAME.equals(propertyName) ||
56                  JarlContextModel.INITIALIZED.equals(propertyName) ||
57                  JarlContextModel.STOP_FRAME.equals(propertyName) ||
58                  JarlContextModel.START_FRAME.equals(propertyName)) {
59              setOptions();
60          }
61      }
62  
63      protected void setOptions() {
64  
65          SwingUtilities.invokeLater(new Runnable() {
66              public void run() {
67                  m_isUpdating = true;
68                  try {
69                      JarlContextModel jarlContextModel = getJarlContextModel();
70                      int start = jarlContextModel.getStartFrame();
71                      int stop = jarlContextModel.getStopFrame();
72                      int current = jarlContextModel.getCurrentFrame();
73                      int total = stop - start;
74                      int majorTick = total / 4;
75                      int minorTick = total / 10;
76  
77                      m_slider.getModel().setRangeProperties(current, 1, start, stop, false);
78                      m_slider.setMinorTickSpacing(minorTick);
79  
80                      /*System.out.println("setOptions: " +
81                              start + ", " +
82                              stop + ", " +
83                              current + ", " +
84                              majorTick + ", " +
85                              minorTick + ", ");*/
86  
87                      Hashtable labels = m_slider.createStandardLabels(majorTick);
88                      m_slider.setLabelTable(labels);
89  
90                      m_titledBorder.setTitle("Current Frame: " + current);
91                  } finally {
92                      m_isUpdating = false;
93                  }
94              }
95          });
96      }
97  }