87 // group.add(relativePos);
88 // relativePos.addItemListener(positioningListener);
89 // add(relativePos);
90 //
91 // add(Box.createRigidArea(demo.VGAP20));
92 //
93 // absolutePositions = false;
94 // relativePos.setSelected(true);
95 //
96 // componentOrientationChanger.addActionListener( new OrientationChangeListener() );
97 //} else {
98 absolutePositions = true;
99 //}
100
101 textPosition = new DirectionPanel(true, "E", new TextPositionListener());
102 labelAlignment = new DirectionPanel(true, "C", new LabelAlignmentListener());
103
104 // Make sure the controls' text position and label alignment match
105 // the initial value of the associated direction panel.
106 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
107 Component c = (Component) demo.getCurrentControls().elementAt(i);
108 setPosition(c, RIGHT, CENTER);
109 setAlignment(c,CENTER,CENTER);
110 }
111
112 l = new JLabel(demo.getString("LayoutControlPanel.textposition_label"));
113 add(l);
114 add(textPosition);
115
116 add(Box.createRigidArea(demo.VGAP20));
117
118 l = new JLabel(demo.getString("LayoutControlPanel.contentalignment_label"));
119 add(l);
120 add(labelAlignment);
121
122 add(Box.createGlue());
123 }
124
125
126 class OrientationChangeListener implements ActionListener {
127 public void actionPerformed( ActionEvent e ) {
156 else if( currentLabelAlignment.equals("W") )
157 labelAlignment.setSelection("E");
158 else if( currentLabelAlignment.equals("SE") )
159 labelAlignment.setSelection("SW");
160 else if( currentLabelAlignment.equals("SW") )
161 labelAlignment.setSelection("SE");
162 }
163 }
164
165 class PositioningListener implements ItemListener {
166
167 public void itemStateChanged(ItemEvent e) {
168 JRadioButton rb = (JRadioButton) e.getSource();
169 if(rb.getText().equals("Absolute") && rb.isSelected()) {
170 absolutePositions = true;
171 } else if(rb.getText().equals("Relative") && rb.isSelected()) {
172 absolutePositions = false;
173 }
174
175 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
176 Component c = (Component) demo.getCurrentControls().elementAt(i);
177 int hPos, vPos, hAlign, vAlign;
178 if( c instanceof AbstractButton ) {
179 hPos = ((AbstractButton)c).getHorizontalTextPosition();
180 vPos = ((AbstractButton)c).getVerticalTextPosition();
181 hAlign = ((AbstractButton)c).getHorizontalAlignment();
182 vAlign = ((AbstractButton)c).getVerticalAlignment();
183 } else if( c instanceof JLabel ) {
184 hPos = ((JLabel)c).getHorizontalTextPosition();
185 vPos = ((JLabel)c).getVerticalTextPosition();
186 hAlign = ((JLabel)c).getHorizontalAlignment();
187 vAlign = ((JLabel)c).getVerticalAlignment();
188 } else {
189 continue;
190 }
191 setPosition(c, hPos, vPos);
192 setAlignment(c, hAlign, vAlign);
193 }
194
195 demo.invalidate();
196 demo.validate();
211 if(cmd.equals("NW")) {
212 hPos = LEFT; vPos = TOP;
213 } else if(cmd.equals("N")) {
214 hPos = CENTER; vPos = TOP;
215 } else if(cmd.equals("NE")) {
216 hPos = RIGHT; vPos = TOP;
217 } else if(cmd.equals("W")) {
218 hPos = LEFT; vPos = CENTER;
219 } else if(cmd.equals("C")) {
220 hPos = CENTER; vPos = CENTER;
221 } else if(cmd.equals("E")) {
222 hPos = RIGHT; vPos = CENTER;
223 } else if(cmd.equals("SW")) {
224 hPos = LEFT; vPos = BOTTOM;
225 } else if(cmd.equals("S")) {
226 hPos = CENTER; vPos = BOTTOM;
227 } else /*if(cmd.equals("SE"))*/ {
228 hPos = RIGHT; vPos = BOTTOM;
229 }
230 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
231 Component c = (Component) demo.getCurrentControls().elementAt(i);
232 setPosition(c, hPos, vPos);
233 }
234 demo.invalidate();
235 demo.validate();
236 demo.repaint();
237 }
238 };
239
240
241 // Label Alignment Listener
242 class LabelAlignmentListener implements ActionListener {
243 public void actionPerformed(ActionEvent e) {
244 JRadioButton rb = (JRadioButton) e.getSource();
245 if(!rb.isSelected()) {
246 return;
247 }
248 String cmd = rb.getActionCommand();
249 int hPos, vPos;
250 if(cmd.equals("NW")) {
251 hPos = LEFT; vPos = TOP;
252 } else if(cmd.equals("N")) {
253 hPos = CENTER; vPos = TOP;
254 } else if(cmd.equals("NE")) {
255 hPos = RIGHT; vPos = TOP;
256 } else if(cmd.equals("W")) {
257 hPos = LEFT; vPos = CENTER;
258 } else if(cmd.equals("C")) {
259 hPos = CENTER; vPos = CENTER;
260 } else if(cmd.equals("E")) {
261 hPos = RIGHT; vPos = CENTER;
262 } else if(cmd.equals("SW")) {
263 hPos = LEFT; vPos = BOTTOM;
264 } else if(cmd.equals("S")) {
265 hPos = CENTER; vPos = BOTTOM;
266 } else /*if(cmd.equals("SE"))*/ {
267 hPos = RIGHT; vPos = BOTTOM;
268 }
269 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
270 Component c = (Component) demo.getCurrentControls().elementAt(i);
271 setAlignment(c,hPos,vPos);
272 c.invalidate();
273 }
274 demo.invalidate();
275 demo.validate();
276 demo.repaint();
277 }
278 };
279
280 // Position
281 void setPosition(Component c, int hPos, int vPos) {
282 boolean ltr = true;
283 ltr = c.getComponentOrientation().isLeftToRight();
284 if( absolutePositions ) {
285 if( hPos == LEADING ) {
286 hPos = ltr ? LEFT : RIGHT;
287 } else if( hPos == TRAILING ) {
288 hPos = ltr ? RIGHT : LEFT;
289 }
290 } else {
|
87 // group.add(relativePos);
88 // relativePos.addItemListener(positioningListener);
89 // add(relativePos);
90 //
91 // add(Box.createRigidArea(demo.VGAP20));
92 //
93 // absolutePositions = false;
94 // relativePos.setSelected(true);
95 //
96 // componentOrientationChanger.addActionListener( new OrientationChangeListener() );
97 //} else {
98 absolutePositions = true;
99 //}
100
101 textPosition = new DirectionPanel(true, "E", new TextPositionListener());
102 labelAlignment = new DirectionPanel(true, "C", new LabelAlignmentListener());
103
104 // Make sure the controls' text position and label alignment match
105 // the initial value of the associated direction panel.
106 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
107 Component c = demo.getCurrentControls().elementAt(i);
108 setPosition(c, RIGHT, CENTER);
109 setAlignment(c,CENTER,CENTER);
110 }
111
112 l = new JLabel(demo.getString("LayoutControlPanel.textposition_label"));
113 add(l);
114 add(textPosition);
115
116 add(Box.createRigidArea(demo.VGAP20));
117
118 l = new JLabel(demo.getString("LayoutControlPanel.contentalignment_label"));
119 add(l);
120 add(labelAlignment);
121
122 add(Box.createGlue());
123 }
124
125
126 class OrientationChangeListener implements ActionListener {
127 public void actionPerformed( ActionEvent e ) {
156 else if( currentLabelAlignment.equals("W") )
157 labelAlignment.setSelection("E");
158 else if( currentLabelAlignment.equals("SE") )
159 labelAlignment.setSelection("SW");
160 else if( currentLabelAlignment.equals("SW") )
161 labelAlignment.setSelection("SE");
162 }
163 }
164
165 class PositioningListener implements ItemListener {
166
167 public void itemStateChanged(ItemEvent e) {
168 JRadioButton rb = (JRadioButton) e.getSource();
169 if(rb.getText().equals("Absolute") && rb.isSelected()) {
170 absolutePositions = true;
171 } else if(rb.getText().equals("Relative") && rb.isSelected()) {
172 absolutePositions = false;
173 }
174
175 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
176 Component c = demo.getCurrentControls().elementAt(i);
177 int hPos, vPos, hAlign, vAlign;
178 if( c instanceof AbstractButton ) {
179 hPos = ((AbstractButton)c).getHorizontalTextPosition();
180 vPos = ((AbstractButton)c).getVerticalTextPosition();
181 hAlign = ((AbstractButton)c).getHorizontalAlignment();
182 vAlign = ((AbstractButton)c).getVerticalAlignment();
183 } else if( c instanceof JLabel ) {
184 hPos = ((JLabel)c).getHorizontalTextPosition();
185 vPos = ((JLabel)c).getVerticalTextPosition();
186 hAlign = ((JLabel)c).getHorizontalAlignment();
187 vAlign = ((JLabel)c).getVerticalAlignment();
188 } else {
189 continue;
190 }
191 setPosition(c, hPos, vPos);
192 setAlignment(c, hAlign, vAlign);
193 }
194
195 demo.invalidate();
196 demo.validate();
211 if(cmd.equals("NW")) {
212 hPos = LEFT; vPos = TOP;
213 } else if(cmd.equals("N")) {
214 hPos = CENTER; vPos = TOP;
215 } else if(cmd.equals("NE")) {
216 hPos = RIGHT; vPos = TOP;
217 } else if(cmd.equals("W")) {
218 hPos = LEFT; vPos = CENTER;
219 } else if(cmd.equals("C")) {
220 hPos = CENTER; vPos = CENTER;
221 } else if(cmd.equals("E")) {
222 hPos = RIGHT; vPos = CENTER;
223 } else if(cmd.equals("SW")) {
224 hPos = LEFT; vPos = BOTTOM;
225 } else if(cmd.equals("S")) {
226 hPos = CENTER; vPos = BOTTOM;
227 } else /*if(cmd.equals("SE"))*/ {
228 hPos = RIGHT; vPos = BOTTOM;
229 }
230 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
231 Component c = demo.getCurrentControls().elementAt(i);
232 setPosition(c, hPos, vPos);
233 }
234 demo.invalidate();
235 demo.validate();
236 demo.repaint();
237 }
238 };
239
240
241 // Label Alignment Listener
242 class LabelAlignmentListener implements ActionListener {
243 public void actionPerformed(ActionEvent e) {
244 JRadioButton rb = (JRadioButton) e.getSource();
245 if(!rb.isSelected()) {
246 return;
247 }
248 String cmd = rb.getActionCommand();
249 int hPos, vPos;
250 if(cmd.equals("NW")) {
251 hPos = LEFT; vPos = TOP;
252 } else if(cmd.equals("N")) {
253 hPos = CENTER; vPos = TOP;
254 } else if(cmd.equals("NE")) {
255 hPos = RIGHT; vPos = TOP;
256 } else if(cmd.equals("W")) {
257 hPos = LEFT; vPos = CENTER;
258 } else if(cmd.equals("C")) {
259 hPos = CENTER; vPos = CENTER;
260 } else if(cmd.equals("E")) {
261 hPos = RIGHT; vPos = CENTER;
262 } else if(cmd.equals("SW")) {
263 hPos = LEFT; vPos = BOTTOM;
264 } else if(cmd.equals("S")) {
265 hPos = CENTER; vPos = BOTTOM;
266 } else /*if(cmd.equals("SE"))*/ {
267 hPos = RIGHT; vPos = BOTTOM;
268 }
269 for(int i = 0; i < demo.getCurrentControls().size(); i++) {
270 Component c = demo.getCurrentControls().elementAt(i);
271 setAlignment(c,hPos,vPos);
272 c.invalidate();
273 }
274 demo.invalidate();
275 demo.validate();
276 demo.repaint();
277 }
278 };
279
280 // Position
281 void setPosition(Component c, int hPos, int vPos) {
282 boolean ltr = true;
283 ltr = c.getComponentOrientation().isLeftToRight();
284 if( absolutePositions ) {
285 if( hPos == LEADING ) {
286 hPos = ltr ? LEFT : RIGHT;
287 } else if( hPos == TRAILING ) {
288 hPos = ltr ? RIGHT : LEFT;
289 }
290 } else {
|