Source code: com/arranger/jarl/shell/views/mainShellPanes/MSPOptionsPane.java
1 package com.arranger.jarl.shell.views.mainShellPanes;
2
3 import com.arranger.jarl.shell.models.ViewPrefModel;
4 import com.arranger.jarl.shell.models.JarlContextModel;
5 import com.arranger.jarl.shell.models.BaseModel;
6 import com.arranger.jarl.shell.JarlShell;
7
8 import javax.swing.*;
9 import javax.swing.event.ChangeListener;
10 import javax.swing.event.ChangeEvent;
11 import java.awt.*;
12 import java.awt.event.KeyEvent;
13
14 /**
15 * MSPOptionsPane created on Apr 21, 2003
16 */
17 public class MSPOptionsPane extends BaseMSP {
18
19 protected MSPDimensionPane m_mspDimensionPane;
20 protected JCheckBox m_reuseFrameCheckBox;
21 protected JCheckBox m_showObjTreeCheckBox;
22 //protected JCheckBox m_showInstanceTreeCheckBox;
23 protected JCheckBox m_useCustomDimCheckBox;
24
25 /**
26 * Initializes with the jarl shell
27 * @param jarlShell
28 */
29 public void init(JarlShell jarlShell) {
30 super.init(jarlShell);
31 m_mspDimensionPane = new MSPDimensionPane();
32 m_mspDimensionPane.init(jarlShell);
33 }
34
35 /**
36 * Create a component
37 * @return
38 */
39 public Component createComponent() {
40 ViewPrefModel viewPrefModel = getViewPrefModel();
41 JarlContextModel jarlContextModel = getJarlContextModel();
42
43 JPanel optionPane = new JPanel();
44 optionPane.setLayout(new BoxLayout(optionPane, BoxLayout.Y_AXIS));
45
46 //reuse frame
47 m_reuseFrameCheckBox = new JCheckBox("Reuse Frame");
48 m_reuseFrameCheckBox.setMnemonic(KeyEvent.VK_E);
49 m_reuseFrameCheckBox.setSelected(viewPrefModel.isReuseFrame());
50 m_reuseFrameCheckBox.addChangeListener(new ChangeListener() {
51 public void stateChanged(ChangeEvent e) {
52 ViewPrefModel viewPrefModel = getViewPrefModel();
53 viewPrefModel.setReuseFrame(m_reuseFrameCheckBox.isSelected());
54 }
55 });
56 optionPane.add(m_reuseFrameCheckBox);
57
58 //show obj tree
59 m_showObjTreeCheckBox = new JCheckBox("Show Object Tree");
60 m_showObjTreeCheckBox.setMnemonic(KeyEvent.VK_J);
61 m_showObjTreeCheckBox.setSelected(viewPrefModel.isShowJarlObjTree());
62 m_showObjTreeCheckBox.addChangeListener(new ChangeListener() {
63 public void stateChanged(ChangeEvent e) {
64 ViewPrefModel viewPrefModel = getViewPrefModel();
65 viewPrefModel.setShowJarlObjTree(m_showObjTreeCheckBox.isSelected());
66 }
67 });
68 optionPane.add(m_showObjTreeCheckBox);
69
70 //show instance tree
71 /*m_showInstanceTreeCheckBox = new JCheckBox("Show Instance Tree");
72 m_showInstanceTreeCheckBox.setMnemonic(KeyEvent.VK_I);
73 m_showInstanceTreeCheckBox.setSelected(viewPrefModel.isShowJarlInstTree());
74 m_showInstanceTreeCheckBox.addChangeListener(new ChangeListener() {
75 public void stateChanged(ChangeEvent e) {
76 ViewPrefModel viewPrefModel = getViewPrefModel();
77 viewPrefModel.setShowJarlInstTree(m_showInstanceTreeCheckBox.isSelected());
78 }
79 });
80 optionPane.add(m_showInstanceTreeCheckBox);*/
81
82 //use custom dimensions
83 m_useCustomDimCheckBox = new JCheckBox("Use Custom Dimensions");
84 m_useCustomDimCheckBox.setMnemonic(KeyEvent.VK_D);
85 m_useCustomDimCheckBox.setSelected(jarlContextModel.hasCustomDimension());
86 m_useCustomDimCheckBox.addChangeListener(new ChangeListener() {
87 public void stateChanged(ChangeEvent e) {
88 JarlContextModel jarlContextModel = getJarlContextModel();
89 if (m_useCustomDimCheckBox.isSelected()) {
90 jarlContextModel.setDimension(m_mspDimensionPane.getCustomDimensions());
91 } else {
92 jarlContextModel.setDimension(null);
93 }
94 }
95 });
96 optionPane.add(m_useCustomDimCheckBox);
97
98 //border
99 optionPane.setBorder(BorderFactory.createTitledBorder("Options"));
100
101 //dimension pane
102 Component dimensionPane = m_mspDimensionPane.createComponent();
103 optionPane.add(dimensionPane);
104
105 return optionPane;
106 }
107
108 /**
109 * Events have been fired
110 * @param baseModel
111 * @param propertyName
112 */
113 public void onChange(BaseModel baseModel, String propertyName) {
114 if (baseModel instanceof ViewPrefModel) {
115 ViewPrefModel viewPrefModel = (ViewPrefModel)baseModel;
116 m_reuseFrameCheckBox.setSelected(viewPrefModel.isReuseFrame());
117 m_showObjTreeCheckBox.setSelected(viewPrefModel.isShowJarlObjTree());
118 //m_showInstanceTreeCheckBox.setSelected(viewPrefModel.isShowJarlInstTree());
119 } else if (baseModel instanceof JarlContextModel) {
120 JarlContextModel jarlContextModel = (JarlContextModel)baseModel;
121 boolean hasCustom = jarlContextModel.hasCustomDimension();
122 m_useCustomDimCheckBox.setSelected(hasCustom);
123 m_mspDimensionPane.enable(hasCustom);
124 }
125
126 m_mspDimensionPane.onChange(baseModel, propertyName);
127 }
128 }