Lines 21-27
Link Here
|
21 |
import java.awt.Component; |
21 |
import java.awt.Component; |
22 |
import java.awt.Dimension; |
22 |
import java.awt.Dimension; |
23 |
import java.awt.Font; |
23 |
import java.awt.Font; |
24 |
import java.awt.GridLayout; |
24 |
import java.awt.GridBagConstraints; |
|
|
25 |
import java.awt.GridBagLayout; |
25 |
import java.awt.Insets; |
26 |
import java.awt.Insets; |
26 |
import java.awt.BorderLayout; |
27 |
import java.awt.BorderLayout; |
27 |
import java.awt.Font; |
28 |
import java.awt.Font; |
Lines 47-52
Link Here
|
47 |
import javax.sound.sampled.Line; |
48 |
import javax.sound.sampled.Line; |
48 |
import javax.swing.AbstractAction; |
49 |
import javax.swing.AbstractAction; |
49 |
import javax.swing.AbstractButton; |
50 |
import javax.swing.AbstractButton; |
|
|
51 |
import javax.swing.BorderFactory; |
50 |
import javax.swing.ButtonGroup; |
52 |
import javax.swing.ButtonGroup; |
51 |
|
53 |
|
52 |
import javax.swing.DefaultListCellRenderer; |
54 |
import javax.swing.DefaultListCellRenderer; |
Lines 61-66
Link Here
|
61 |
import javax.swing.JScrollPane; |
63 |
import javax.swing.JScrollPane; |
62 |
import javax.swing.JToggleButton; |
64 |
import javax.swing.JToggleButton; |
63 |
import javax.swing.KeyStroke; |
65 |
import javax.swing.KeyStroke; |
|
|
66 |
import javax.swing.UIManager; |
64 |
import javax.swing.border.BevelBorder; |
67 |
import javax.swing.border.BevelBorder; |
65 |
import javax.swing.border.CompoundBorder; |
68 |
import javax.swing.border.CompoundBorder; |
66 |
import javax.swing.border.EmptyBorder; |
69 |
import javax.swing.border.EmptyBorder; |
Lines 71-76
Link Here
|
71 |
import org.netbeans.api.progress.ProgressHandle; |
74 |
import org.netbeans.api.progress.ProgressHandle; |
72 |
import org.netbeans.api.progress.ProgressHandleFactory; |
75 |
import org.netbeans.api.progress.ProgressHandleFactory; |
73 |
import org.netbeans.modules.options.ui.LoweredBorder; |
76 |
import org.netbeans.modules.options.ui.LoweredBorder; |
|
|
77 |
import org.netbeans.modules.options.ui.VariableBorder; |
74 |
import org.netbeans.spi.options.OptionsCategory; |
78 |
import org.netbeans.spi.options.OptionsCategory; |
75 |
import org.netbeans.spi.options.OptionsCategory.PanelController; |
79 |
import org.netbeans.spi.options.OptionsCategory.PanelController; |
76 |
import org.openide.ErrorManager; |
80 |
import org.openide.ErrorManager; |
Lines 116-121
Link Here
|
116 |
private Color iconViewBorder = new Color (127, 157, 185); |
120 |
private Color iconViewBorder = new Color (127, 157, 185); |
117 |
private ControllerListener coltrollerListener = new ControllerListener (); |
121 |
private ControllerListener coltrollerListener = new ControllerListener (); |
118 |
|
122 |
|
|
|
123 |
private final boolean isMac = UIManager.getLookAndFeel().getID().equals("Aqua"); |
124 |
private final Color selectedMac = new Color(221, 221, 221); |
125 |
private final Color selectedBMac = new Color(183, 183, 183); |
126 |
private final Color borderMac = new Color(141, 141, 141); |
127 |
private final Font labelFontMac = new Font("Lucida Grande", 0, 10); |
128 |
|
119 |
|
129 |
|
120 |
private static String loc (String key) { |
130 |
private static String loc (String key) { |
121 |
return NbBundle.getMessage (OptionsPanel.class, key); |
131 |
return NbBundle.getMessage (OptionsPanel.class, key); |
Lines 198-209
Link Here
|
198 |
|
208 |
|
199 |
// icon view |
209 |
// icon view |
200 |
pCategories = new JPanel (new BorderLayout ()); |
210 |
pCategories = new JPanel (new BorderLayout ()); |
201 |
JPanel pCategories2 = new JPanel (new GridLayout ( |
211 |
JPanel pCategories2 = new JPanel (new GridBagLayout()); |
202 |
optionCategories.size (), |
|
|
203 |
1, 0, 0 |
204 |
)); |
205 |
pCategories.add ("North", pCategories2); |
212 |
pCategories.add ("North", pCategories2); |
206 |
pCategories.setBorder (new LineBorder (iconViewBorder)); |
213 |
if(isMac) { |
|
|
214 |
pCategories.setBorder(new CompoundBorder ( |
215 |
new VariableBorder(null, null, borderMac, null), |
216 |
BorderFactory.createEmptyBorder(0, 4, 0, 4) |
217 |
)); |
218 |
} else { |
219 |
pCategories.setBorder(new LineBorder (iconViewBorder)); |
220 |
} |
207 |
pCategories.setBackground (Color.white); |
221 |
pCategories.setBackground (Color.white); |
208 |
pCategories2.setBackground (Color.white); |
222 |
pCategories2.setBackground (Color.white); |
209 |
pCategories2.setBorder (null); |
223 |
pCategories2.setBorder (null); |
Lines 223-228
Link Here
|
223 |
"DOWN" |
237 |
"DOWN" |
224 |
); |
238 |
); |
225 |
getActionMap ().put ("DOWN", new DownAction ()); |
239 |
getActionMap ().put ("DOWN", new DownAction ()); |
|
|
240 |
|
241 |
GridBagConstraints gbc = new GridBagConstraints(); |
242 |
gbc.anchor = GridBagConstraints.NORTHWEST; |
243 |
if (isMac) { |
244 |
gbc.fill = GridBagConstraints.VERTICAL; |
245 |
gbc.weightx = 0.0; |
246 |
gbc.weighty = 1.0; |
247 |
} else { |
248 |
gbc.fill = GridBagConstraints.HORIZONTAL; |
249 |
gbc.weightx = 1.0; |
250 |
gbc.weighty = 0.0; |
251 |
} |
252 |
|
226 |
for (i = 0; i < k; i++) { |
253 |
for (i = 0; i < k; i++) { |
227 |
final OptionsCategory ocp = (OptionsCategory) |
254 |
final OptionsCategory ocp = (OptionsCategory) |
228 |
optionCategories.get (i); |
255 |
optionCategories.get (i); |
Lines 233-251
Link Here
|
233 |
(mnemonic, KeyEvent.ALT_MASK); |
260 |
(mnemonic, KeyEvent.ALT_MASK); |
234 |
inputMap.put (keyStroke, b); |
261 |
inputMap.put (keyStroke, b); |
235 |
getActionMap ().put (b, new SelectAction (i)); |
262 |
getActionMap ().put (b, new SelectAction (i)); |
236 |
pCategories2.add (b); |
263 |
|
|
|
264 |
if (isMac) { |
265 |
gbc.gridx = i; |
266 |
gbc.gridy = 0; |
267 |
} else { |
268 |
gbc.gridx = 0; |
269 |
gbc.gridy = i; |
270 |
} |
271 |
|
272 |
pCategories2.add (b, gbc); |
237 |
} |
273 |
} |
238 |
|
274 |
|
|
|
275 |
/* i don't know a better workaround */ |
276 |
gbc.fill = GridBagConstraints.BOTH; |
277 |
gbc.weightx = 1.0; |
278 |
gbc.weighty = 1.0; |
279 |
if (isMac) { |
280 |
gbc.gridx = gbc.gridx + 1; |
281 |
gbc.gridy = 0; |
282 |
} else { |
283 |
gbc.gridx = 0; |
284 |
gbc.gridy = gbc.gridy + 1; |
285 |
} |
286 |
pCategories2.add (new javax.swing.JLabel(""), gbc); |
287 |
|
288 |
|
239 |
// layout |
289 |
// layout |
240 |
FormLayout layout = new FormLayout( |
290 |
FormLayout layout; |
241 |
"p, 5dlu, p:g", // cols |
291 |
if (isMac) { |
242 |
"p, 5dlu, p:g"); // rows |
292 |
layout = new FormLayout( |
|
|
293 |
"p:g", // cols |
294 |
"p, 5dlu, p:g"); // rows |
295 |
} else { |
296 |
layout = new FormLayout( |
297 |
"p, 5dlu, p:g", // cols |
298 |
"p, 5dlu, p:g"); // rows |
299 |
} |
243 |
PanelBuilder builder = new PanelBuilder (layout, this); |
300 |
PanelBuilder builder = new PanelBuilder (layout, this); |
244 |
builder.setDefaultDialogBorder (); |
301 |
if (isMac) { |
|
|
302 |
pOptions.setBorder(new CompoundBorder ( |
303 |
new VariableBorder(null, null, borderMac, null), |
304 |
BorderFactory.createEmptyBorder(0, 20, 5, 20) |
305 |
)); |
306 |
} else { |
307 |
builder.setDefaultDialogBorder (); |
308 |
} |
245 |
CellConstraints cc = new CellConstraints (); |
309 |
CellConstraints cc = new CellConstraints (); |
246 |
builder.add ( pCategories, cc.xywh (1, 1, 1, 3)); |
310 |
if (isMac) { |
247 |
builder.add ( pTitle, cc.xy (3, 1)); |
311 |
builder.add ( pCategories, cc.xy (1, 1)); |
248 |
builder.add ( pOptions, cc.xy (3, 3, "f,f")); |
312 |
builder.add ( pOptions, cc.xy (1, 3, "f,f")); |
|
|
313 |
} else { |
314 |
builder.add ( pCategories, cc.xywh (1, 1, 1, 3)); |
315 |
builder.add ( pTitle, cc.xy (3, 1)); |
316 |
builder.add ( pOptions, cc.xy (3, 3, "f,f")); |
317 |
} |
249 |
|
318 |
|
250 |
if (k < 1) return; |
319 |
if (k < 1) return; |
251 |
OptionsCategory category = (OptionsCategory) optionCategories.get (0); |
320 |
OptionsCategory category = (OptionsCategory) optionCategories.get (0); |
Lines 423-428
Link Here
|
423 |
s |
492 |
s |
424 |
); |
493 |
); |
425 |
setForeground (Color.black); |
494 |
setForeground (Color.black); |
|
|
495 |
|
496 |
if (isMac) { |
497 |
setFont(labelFontMac); |
498 |
setIconTextGap(2); |
499 |
} |
500 |
|
426 |
if (index == currentCategory) |
501 |
if (index == currentCategory) |
427 |
setSelected (); |
502 |
setSelected (); |
428 |
else |
503 |
else |
Lines 430-448
Link Here
|
430 |
} |
505 |
} |
431 |
|
506 |
|
432 |
void setNormal () { |
507 |
void setNormal () { |
433 |
setBorder (new EmptyBorder (2, 4, 2, 4)); |
508 |
if (isMac) { |
|
|
509 |
setBorder (new EmptyBorder (5, 6, 3, 6)); |
510 |
} else { |
511 |
setBorder (new EmptyBorder (2, 4, 2, 4)); |
512 |
} |
434 |
setBackground (Color.white); |
513 |
setBackground (Color.white); |
435 |
} |
514 |
} |
436 |
|
515 |
|
437 |
void setSelected () { |
516 |
void setSelected () { |
438 |
setBorder (new CompoundBorder ( |
517 |
if (isMac) { |
439 |
new CompoundBorder ( |
518 |
setBorder(new CompoundBorder ( |
440 |
new LineBorder (Color.white), |
519 |
new VariableBorder(null, selectedBMac, null, selectedBMac), |
441 |
new LineBorder (selectedB) |
520 |
BorderFactory.createEmptyBorder(5, 5, 3, 5) |
442 |
), |
521 |
)); |
443 |
new EmptyBorder (0, 2, 0, 2) |
522 |
setBackground (selectedMac); |
444 |
)); |
523 |
} else { |
445 |
setBackground (selected); |
524 |
setBorder (new CompoundBorder ( |
|
|
525 |
new CompoundBorder ( |
526 |
new LineBorder (Color.white), |
527 |
new LineBorder (selectedB) |
528 |
), |
529 |
new EmptyBorder (0, 2, 0, 2) |
530 |
)); |
531 |
setBackground (selected); |
532 |
} |
446 |
} |
533 |
} |
447 |
|
534 |
|
448 |
void setHighlighted () { |
535 |
void setHighlighted () { |
Lines 462-480
Link Here
|
462 |
} |
549 |
} |
463 |
|
550 |
|
464 |
public void mousePressed (MouseEvent e) { |
551 |
public void mousePressed (MouseEvent e) { |
465 |
setSelected (); |
552 |
if (!isMac) |
|
|
553 |
setSelected (); |
466 |
} |
554 |
} |
467 |
|
555 |
|
468 |
public void mouseReleased (MouseEvent e) { |
556 |
public void mouseReleased (MouseEvent e) { |
469 |
} |
557 |
} |
470 |
|
558 |
|
471 |
public void mouseEntered (MouseEvent e) { |
559 |
public void mouseEntered (MouseEvent e) { |
472 |
if (index != currentCategory) |
560 |
if (index != currentCategory && !isMac) |
473 |
setHighlighted (); |
561 |
setHighlighted (); |
474 |
} |
562 |
} |
475 |
|
563 |
|
476 |
public void mouseExited (MouseEvent e) { |
564 |
public void mouseExited (MouseEvent e) { |
477 |
if (index != currentCategory) |
565 |
if (index != currentCategory && !isMac) |
478 |
setNormal (); |
566 |
setNormal (); |
479 |
} |
567 |
} |
480 |
} |
568 |
} |