Source code: com/memoire/bu/BuLookPreferencesPanel.java
1 /**
2 * @modification $Date: 2002/12/16 18:56:24 $
3 * @statut unstable
4 * @file BuLookPreferencesPanel.java
5 * @version 0.36
6 * @author Guillaume Desnoix
7 * @email guillaume@desnoix.com
8 * @license GNU General Public License 2 (GPL2)
9 * @copyright 1998-2001 Guillaume Desnoix
10 */
11
12 package com.memoire.bu;
13
14 import com.memoire.bu.*;
15 import com.memoire.dnd.*;
16 import com.memoire.fu.*;
17 import com.memoire.re.*;
18
19
20 import java.awt.*;
21 import java.awt.event.*;
22 import java.awt.image.*;
23 import java.util.*;
24
25 import javax.swing.*;
26 import javax.swing.border.*;
27
28 /**
29 * A panel where the user can choose his favorite look.
30 * (background, look and feel, icons, ...)
31 */
32
33 /**
34 * desktop.decor
35 * desktop.texture
36 * desktop.background
37 * lookandfeel.name
38 * lookandfeel.class
39 * lookandfeel.theme
40 * icons.size
41 */
42
43 public class BuLookPreferencesPanel
44 extends BuAbstractPreferencesPanel
45 implements ActionListener
46 {
47 private static final class OptionItem
48 {
49 public String texte;
50 public Icon icone;
51 public boolean activee;
52
53 public OptionItem(String _texte, Icon _icone, boolean _activee)
54 {
55 texte =_texte;
56 activee=_activee;
57 icone =_icone;
58
59 if(!activee&&(icone instanceof ImageIcon))
60 icone=new ImageIcon
61 (BuLib.HELPER.createImage
62 (new FilteredImageSource
63 (((ImageIcon)icone).getImage().getSource(),
64 BuFilters.getDisabled())));
65
66 int s=BuResource.BU.getDefaultMenuSize();
67 if((icone!=null)&&!(icone instanceof BuFixedSizeIcon))
68 {
69 int wi=icone.getIconWidth();
70 int hi=icone.getIconHeight();
71 if((wi<s)||(hi<s))
72 icone=new BuFixedSizeIcon
73 (icone,Math.max(wi,s),Math.max(hi,s));
74 }
75 }
76
77 public OptionItem(String _texte, Icon _icone)
78 {
79 this(_texte,_icone,true);
80 }
81 }
82
83 /*
84
85 private final class XCBCR
86 implements ListCellRenderer
87 {
88 public Component getListCellRendererComponent
89 (JList list,
90 Object value,
91 int index,
92 boolean isSelected,
93 boolean cellHasFocus)
94 {
95 return new XCBCC((OptionItem)value, isSelected, cellHasFocus, list);
96 }
97 }
98
99 private final class XCBCC
100 extends JLabel
101 {
102 public XCBCC
103 (OptionItem _option, boolean _selected, boolean _focus, JList _list)
104 {
105 super("",null,SwingConstants.LEFT);
106 if(_option!=null)
107 {
108 this.setText(_option.texte);
109 this.setEnabled(_option.activee);
110 this.setIcon(_option.icone);
111 }
112 else
113 {
114 this.setText("Erreur");
115 this.setEnabled(false);
116 }
117
118 if(_selected)
119 {
120 this.setOpaque(true);
121 this.setBackground(_list.getSelectionBackground());
122 this.setForeground(_list.getSelectionForeground());
123 this.setBorder(UIManager.getBorder("ComboBox.selectedCellBorder"));
124 }
125 else
126 {
127 this.setOpaque(false);
128 this.setBackground(_list.getBackground());
129 this.setForeground(_list.getForeground());
130 this.setBorder(UIManager.getBorder("ComboBox.cellBorder"));
131 }
132 }
133 }
134 */
135
136 /*
137 private final class XCBCR
138 extends BuLabel
139 implements ListCellRenderer
140 {
141 public Component getListCellRendererComponent
142 (JList _list,
143 Object _value,
144 int _index,
145 boolean _selected,
146 boolean _focus)
147 {
148 OptionItem _option=(OptionItem)_value;
149
150 setHorizontalAlignment(LEFT);
151
152 if(_option!=null)
153 {
154 this.setText(_option.texte);
155 this.setEnabled(_option.activee&&_list.isEnabled());
156 this.setIcon(_option.icone);
157 this.setDisabledIcon(_option.icone);
158 }
159 else
160 {
161 this.setText("Erreur");
162 this.setEnabled(false);
163 this.setIcon(null);
164 }
165
166 if(_selected)
167 {
168 this.setOpaque(true);
169 this.setBackground(_list.getSelectionBackground());
170 this.setForeground(_list.getSelectionForeground());
171 this.setBorder(UIManager.getBorder("ComboBox.selectedCellBorder"));
172 }
173 else
174 {
175 this.setOpaque(false);
176 this.setBackground(_list.getBackground());
177 this.setForeground(_list.getForeground());
178 this.setBorder(UIManager.getBorder("ComboBox.cellBorder"));
179 }
180
181 return this;
182 }
183 }
184 */
185
186 private final class XCBCR
187 extends BuAbstractCellRenderer
188 {
189 public XCBCR()
190 {
191 super(BuAbstractCellRenderer.COMBOBOX);
192 }
193
194 public Component getListCellRendererComponent
195 (JList _list,
196 Object _value,
197 int _index,
198 boolean _selected,
199 boolean _focus)
200 {
201 BuLabel r=(BuLabel)super.getListCellRendererComponent
202 (_list,_value,_index,_selected,_focus);
203
204 OptionItem _option=(OptionItem)_value;
205
206 if(_option!=null)
207 {
208 boolean e=(_option.activee&&_list.isEnabled());
209 r.setText(_option.texte);
210 r.setEnabled(e);
211 r.setIcon(_option.icone);
212 r.setDisabledIcon(_option.icone);
213 if(!e) r.setForeground(_list.getBackground().darker());
214 }
215 else
216 {
217 r.setText(BuResource.BU.getString("Erreur"));
218 r.setEnabled(false);
219 r.setIcon(null);
220 }
221
222 return r;
223 }
224 }
225
226 BuCommonInterface appli_;
227 BuPreferences options_;
228 Hashtable optionsStr_;
229 XCBCR cbRenderer_;
230
231 // Panneau des options generales
232 BuGridLayout loGen_;
233 BuPanel pnGenDesk_;
234 AbstractBorder boGenDesk_;
235 BuGridLayout loGenDesk_;
236 BuLabel lbGenDeskDecor_, lbGenDeskTexture_, lbGenDeskCouleur_;
237 BuComboBox liGenDeskDecor_, liGenDeskTexture_, liGenDeskCouleur_;
238 BuLabel lbGenAspAspect_, lbGenAspSlaf_, lbGenAspMetal_;
239 BuComboBox liGenAspAspect_, liGenAspSlaf_, liGenAspMetal_;
240 BuLabel lbGenAspSkinlf_, lbGenAspOyoaha_;
241 BuTextField tfGenAspSkinlf_, tfGenAspOyoaha_;
242
243 BuLabel lbIcones_;
244 BuComboBox chIcones_;
245
246 public String getTitle()
247 { return BuResource.BU.getString("Aspect"); }
248
249 // Constructeur
250
251 public BuLookPreferencesPanel(BuCommonInterface _appli)
252 {
253 super();
254 appli_ =_appli;
255 options_ =BuPreferences.BU;
256 cbRenderer_=new XCBCR();
257 optionsStr_=new Hashtable();
258
259 OptionItem itemOpt;
260 String itemStr;
261
262 optionsStr_.put(itemStr="16",
263 itemOpt=new OptionItem(BuResource.BU.getString("16x16 (standard)"),
264 BuResource.BU.getMenuIcon("ouvrir_16")));
265 optionsStr_.put(itemOpt, itemStr);
266 optionsStr_.put(itemStr="20",
267 itemOpt=new OptionItem(BuResource.BU.getString("20x20 (dean)"),
268 BuResource.BU.getMenuIcon("ouvrir_20")));
269 optionsStr_.put(itemOpt, itemStr);
270 optionsStr_.put(itemStr="22",
271 itemOpt=new OptionItem(BuResource.BU.getString("22x22 (kde)"),
272 BuResource.BU.getMenuIcon("ouvrir_22")));
273 optionsStr_.put(itemOpt, itemStr);
274 optionsStr_.put(itemStr="24",
275 itemOpt=new OptionItem(BuResource.BU.getString("24x24 (gnome)"),
276 BuResource.BU.getMenuIcon("ouvrir_24")));
277 optionsStr_.put(itemOpt, itemStr);
278 optionsStr_.put(itemStr="26",
279 itemOpt=new OptionItem(BuResource.BU.getString("26x26 (swing)"),
280 BuResource.BU.getMenuIcon("ouvrir_26")));
281 optionsStr_.put(itemOpt, itemStr);
282 optionsStr_.put(itemStr="48",
283 itemOpt=new OptionItem(BuResource.BU.getString("48x48 (grem)"),
284 BuResource.BU.getMenuIcon("ouvrir_48")));
285 optionsStr_.put(itemOpt, itemStr);
286 optionsStr_.put(itemStr="64",
287 itemOpt=new OptionItem(BuResource.BU.getString("64x64 (real)"),
288 BuResource.BU.getMenuIcon("ouvrir_64")));
289 optionsStr_.put(itemOpt, itemStr);
290
291 optionsStr_.put(itemStr="DESKTOP_UNIFORME",
292 itemOpt=new OptionItem(BuResource.BU.getString("Uniforme"),
293 BuResource.BU.getIcon("uniforme")));
294 optionsStr_.put(itemOpt, itemStr);
295 optionsStr_.put(itemStr="DESKTOP_DEGRADE",
296 itemOpt=new OptionItem(BuResource.BU.getString("Dégradé"),
297 BuResource.BU.getIcon("degrade")));
298 optionsStr_.put(itemOpt, itemStr);
299 optionsStr_.put(itemStr="DESKTOP_TEXTURE",
300 itemOpt=new OptionItem(BuResource.BU.getString("Texturé"),
301 BuResource.BU.getIcon("texture")));
302 optionsStr_.put(itemOpt, itemStr);
303 optionsStr_.put(itemStr="DESKTOP_TEXTURE1",
304 itemOpt=new OptionItem(BuResource.BU.getString("Texture")+" 1",
305 new BuTextureIcon(BuResource.BU.getImage("background_desktop_1"))));
306 optionsStr_.put(itemOpt, itemStr);
307 optionsStr_.put(itemStr="DESKTOP_TEXTURE2",
308 itemOpt=new OptionItem(BuResource.BU.getString("Texture")+" 2",
309 new BuTextureIcon(BuResource.BU.getImage("background_desktop_2"))));
310 optionsStr_.put(itemOpt, itemStr);
311 optionsStr_.put(itemStr="DESKTOP_TEXTURE3",
312 itemOpt=new OptionItem(BuResource.BU.getString("Texture")+" 3",
313 new BuTextureIcon(BuResource.BU.getImage("background_desktop_3"))));
314 optionsStr_.put(itemOpt, itemStr);
315 optionsStr_.put(itemStr="DESKTOP_TEXTURE4",
316 itemOpt=new OptionItem
317 (BuResource.BU.getString("Texture")+" 4",
318 new BuTextureIcon(new ImageIcon
319 (BuPreferences.BU.getStringProperty("desktop.image")).getImage())));
320 optionsStr_.put(itemOpt, itemStr);
321 optionsStr_.put(itemStr="DESKTOP_ROUGE",
322 itemOpt=new OptionItem(BuResource.BU.getString("Rouge"),
323 new BuColorIcon(new Color(128, 64, 64))));
324 optionsStr_.put(itemOpt, itemStr);
325 optionsStr_.put(itemStr="DESKTOP_VERT",
326 itemOpt=new OptionItem(BuResource.BU.getString("Vert"),
327 new BuColorIcon(new Color( 64,129, 64))));
328 optionsStr_.put(itemOpt, itemStr);
329 optionsStr_.put(itemStr="DESKTOP_BLEU",
330 itemOpt=new OptionItem(BuResource.BU.getString("Bleu"),
331 new BuColorIcon(new Color( 64, 64,128))));
332 optionsStr_.put(itemOpt, itemStr);
333 optionsStr_.put(itemStr="DESKTOP_ORANGE",
334 itemOpt=new OptionItem(BuResource.BU.getString("Orange"),
335 new BuColorIcon(new Color(192,128, 96))));
336 optionsStr_.put(itemOpt, itemStr);
337 optionsStr_.put(itemStr="DESKTOP_SIMILAIRE",
338 itemOpt=new OptionItem(BuResource.BU.getString("Similaire"),
339 new BuColorIcon(UIManager.getColor("Panel.background"))));
340 optionsStr_.put(itemOpt, itemStr);
341 optionsStr_.put(itemStr="DESKTOP_DEFAUT",
342 itemOpt=new OptionItem(BuResource.BU.getString("Défaut"),
343 new BuColorIcon(UIManager.getColor("Desktop.background"))));
344 optionsStr_.put(itemOpt, itemStr);
345 optionsStr_.put(itemStr="ASPECT_DEFAUT",
346 itemOpt=new OptionItem(BuResource.BU.getString("Défaut"),
347 BuLib.loadToolCommandIcon(itemStr),
348 options_.isEnabled("ASPECT_DEFAUT")));
349 optionsStr_.put(itemOpt, itemStr);
350 optionsStr_.put(itemStr="ASPECT_AMIGA",
351 itemOpt=new OptionItem("Amiga",
352 BuLib.loadToolCommandIcon(itemStr),
353 options_.isEnabled("ASPECT_AMIGA")));
354 optionsStr_.put(itemOpt, itemStr);
355 optionsStr_.put(itemStr="ASPECT_KUNSTSTOFF",
356 itemOpt=new OptionItem("Kunststoff",
357 BuLib.loadToolCommandIcon(itemStr),
358 options_.isEnabled("ASPECT_KUNSTSTOFF")));
359 optionsStr_.put(itemOpt, itemStr);
360 optionsStr_.put(itemStr="ASPECT_MAC",
361 itemOpt=new OptionItem("Mac",
362 BuLib.loadToolCommandIcon(itemStr),
363 options_.isEnabled("ASPECT_MAC")));
364 optionsStr_.put(itemOpt, itemStr);
365 optionsStr_.put(itemStr="ASPECT_METAL",
366 itemOpt=new OptionItem("Metal",
367 BuLib.loadToolCommandIcon(itemStr),
368 options_.isEnabled("ASPECT_METAL")));
369 optionsStr_.put(itemOpt, itemStr);
370 optionsStr_.put(itemStr="ASPECT_MOTIF",
371 itemOpt=new OptionItem("Motif",
372 BuLib.loadToolCommandIcon(itemStr),
373 options_.isEnabled("ASPECT_MOTIF")));
374 optionsStr_.put(itemOpt, itemStr);
375 optionsStr_.put(itemStr="ASPECT_NEXT",
376 itemOpt=new OptionItem("Next",
377 BuLib.loadToolCommandIcon(itemStr),
378 options_.isEnabled("ASPECT_NEXT")));
379 optionsStr_.put(itemOpt, itemStr);
380 optionsStr_.put(itemStr="ASPECT_ORGANIC",
381 itemOpt=new OptionItem("Organic",
382 BuLib.loadToolCommandIcon(itemStr),
383 options_.isEnabled("ASPECT_ORGANIC")));
384 optionsStr_.put(itemOpt, itemStr);
385 optionsStr_.put(itemStr="ASPECT_OYOAHA",
386 itemOpt=new OptionItem("Oyoaha",
387 BuLib.loadToolCommandIcon(itemStr),
388 options_.isEnabled("ASPECT_OYOAHA")));
389 optionsStr_.put(itemOpt, itemStr);
390 optionsStr_.put(itemStr="ASPECT_SKINLF",
391 itemOpt=new OptionItem("SkinLF",
392 BuLib.loadToolCommandIcon(itemStr),
393 options_.isEnabled("ASPECT_SKINLF")));
394 optionsStr_.put(itemOpt, itemStr);
395 optionsStr_.put(itemStr="ASPECT_SLAF",
396 itemOpt=new OptionItem("Slaf",
397 BuLib.loadToolCommandIcon(itemStr),
398 options_.isEnabled("ASPECT_SLAF")));
399 optionsStr_.put(itemOpt, itemStr);
400 optionsStr_.put(itemStr="ASPECT_WINDOWS",
401 itemOpt=new OptionItem("Windows",
402 BuLib.loadToolCommandIcon(itemStr),
403 options_.isEnabled("ASPECT_WINDOWS")));
404 optionsStr_.put(itemOpt, itemStr);
405
406 Object[] items;
407 int nGen, nGenDesk;
408
409 setLayout(new BuBorderLayout());
410 setBorder(new EmptyBorder(5,5,5,5));
411
412 nGen=0;
413
414 // Desktop
415 pnGenDesk_=new BuPanel();
416 boGenDesk_=new CompoundBorder
417 (new TitledBorder
418 (BuResource.BU.getString("Aspect")), new EmptyBorder(5,5,5,5));
419 pnGenDesk_.setBorder(boGenDesk_);
420 loGenDesk_=new BuGridLayout();
421 loGenDesk_.setColumns(2);
422 loGenDesk_.setVgap(5);
423 loGenDesk_.setHgap(5);
424 pnGenDesk_.setLayout(loGenDesk_);
425 nGenDesk=0;
426
427 // Aspect
428 lbGenAspAspect_=new BuLabel(BuResource.BU.getString("Aspect:"),JLabel.RIGHT);
429 items=new OptionItem[12];
430 items[ 0]=optionsStr_.get("ASPECT_DEFAUT");
431 items[ 1]=optionsStr_.get("ASPECT_AMIGA");
432 items[ 2]=optionsStr_.get("ASPECT_KUNSTSTOFF");
433 items[ 3]=optionsStr_.get("ASPECT_MAC");
434 items[ 4]=optionsStr_.get("ASPECT_METAL");
435 items[ 5]=optionsStr_.get("ASPECT_MOTIF");
436 items[ 6]=optionsStr_.get("ASPECT_NEXT");
437 items[ 7]=optionsStr_.get("ASPECT_ORGANIC");
438 items[ 8]=optionsStr_.get("ASPECT_OYOAHA");
439 items[ 9]=optionsStr_.get("ASPECT_SKINLF");
440 items[10]=optionsStr_.get("ASPECT_SLAF");
441 items[11]=optionsStr_.get("ASPECT_WINDOWS");
442 liGenAspAspect_=new BuComboBox(items);
443 liGenAspAspect_.setRenderer(cbRenderer_);
444 liGenAspAspect_.setEditable(false);
445 liGenAspAspect_.addActionListener(this);
446 pnGenDesk_.add(lbGenAspAspect_, nGenDesk++);
447 pnGenDesk_.add(liGenAspAspect_, nGenDesk++);
448
449 // Metal theme
450 lbGenAspMetal_=new BuLabel(BuResource.BU.getString
451 ("Thème Metal:"),JLabel.RIGHT);
452 BuMetalCustomTheme[] metalThemes=BuMetalCustomTheme.getList();
453 items=new OptionItem[metalThemes.length-4];
454 for(int i=0,j=0;i<metalThemes.length;i++)
455 {
456 BuMetalCustomTheme s=metalThemes[i];
457 if(s!=null)
458 {
459 optionsStr_.put(itemStr="THEME_METAL"+i,
460 itemOpt=new OptionItem(s.getName(),s.getIcon()));
461 optionsStr_.put(itemOpt, itemStr);
462 items[j]=optionsStr_.get("THEME_METAL"+i);
463 j++;
464 }
465 }
466 liGenAspMetal_=new BuComboBox(items);
467 liGenAspMetal_.setRenderer(cbRenderer_);
468 liGenAspMetal_.setEditable(false);
469 liGenAspMetal_.addActionListener(this);
470 pnGenDesk_.add(lbGenAspMetal_, nGenDesk++);
471 pnGenDesk_.add(liGenAspMetal_, nGenDesk++);
472
473 // Slaf theme
474 lbGenAspSlaf_=new BuLabel(BuResource.BU.getString
475 ("Thème Slaf:"),JLabel.RIGHT);
476 BuSlafCustomTheme[] slafThemes=BuSlafCustomTheme.getList();
477 items=new OptionItem[slafThemes.length-3];
478 for(int i=0,j=0;i<slafThemes.length;i++)
479 {
480 BuSlafCustomTheme s=slafThemes[i];
481 if(s!=null)
482 {
483 optionsStr_.put(itemStr=s.getKey(),
484 itemOpt=new OptionItem(s.getName(),s.getIcon()));
485 optionsStr_.put(itemOpt, itemStr);
486 items[j]=optionsStr_.get(s.getKey());
487 j++;
488 }
489 }
490 liGenAspSlaf_=new BuComboBox(items);
491 liGenAspSlaf_.setRenderer(cbRenderer_);
492 liGenAspSlaf_.setEditable(false);
493 liGenAspSlaf_.addActionListener(this);
494 pnGenDesk_.add(lbGenAspSlaf_, nGenDesk++);
495 pnGenDesk_.add(liGenAspSlaf_, nGenDesk++);
496
497 // Skinlf theme
498 lbGenAspSkinlf_=new BuLabel(BuResource.BU.getString
499 ("Thème Skinlf:"),JLabel.RIGHT);
500 tfGenAspSkinlf_=new BuTextField(25);
501 tfGenAspSkinlf_.addActionListener(this);
502 pnGenDesk_.add(lbGenAspSkinlf_, nGenDesk++);
503 pnGenDesk_.add(tfGenAspSkinlf_, nGenDesk++);
504
505 // Oyoaha theme
506 lbGenAspOyoaha_=new BuLabel(BuResource.BU.getString
507 ("Thème Oyoaha:"),JLabel.RIGHT);
508 tfGenAspOyoaha_=new BuTextField(25);
509 tfGenAspOyoaha_.addActionListener(this);
510 pnGenDesk_.add(lbGenAspOyoaha_, nGenDesk++);
511 pnGenDesk_.add(tfGenAspOyoaha_, nGenDesk++);
512
513 // Icones
514 lbIcones_=new BuLabel(BuResource.BU.getString("Icônes:"),JLabel.RIGHT);
515 items=new OptionItem[7];
516 items[0]=optionsStr_.get("16");
517 items[1]=optionsStr_.get("20");
518 items[2]=optionsStr_.get("22");
519 items[3]=optionsStr_.get("24");
520 items[4]=optionsStr_.get("26");
521 items[5]=optionsStr_.get("48");
522 items[6]=optionsStr_.get("64");
523 chIcones_=new BuComboBox(items);
524 chIcones_.setRenderer(cbRenderer_);
525 chIcones_.setEditable(false);
526 chIcones_.addActionListener(this);
527 pnGenDesk_.add(lbIcones_, nGenDesk++);
528 pnGenDesk_.add(chIcones_, nGenDesk++);
529
530 // Decor
531 lbGenDeskDecor_=new BuLabel(BuResource.BU.getString("Décor:"),JLabel.RIGHT);
532 items=new OptionItem[3];
533 items[0]=optionsStr_.get("DESKTOP_UNIFORME");
534 items[1]=optionsStr_.get("DESKTOP_DEGRADE");
535 items[2]=optionsStr_.get("DESKTOP_TEXTURE");
536 liGenDeskDecor_=new BuComboBox(items);
537 liGenDeskDecor_.setRenderer(cbRenderer_);
538 liGenDeskDecor_.setEditable(false);
539 liGenDeskDecor_.addActionListener(this);
540 pnGenDesk_.add(lbGenDeskDecor_, nGenDesk++);
541 pnGenDesk_.add(liGenDeskDecor_, nGenDesk++);
542
543 // Texture
544 lbGenDeskTexture_=new BuLabel(BuResource.BU.getString("Texture:"),JLabel.RIGHT);
545 items=new OptionItem[4];
546 items[0]=optionsStr_.get("DESKTOP_TEXTURE1");
547 items[1]=optionsStr_.get("DESKTOP_TEXTURE2");
548 items[2]=optionsStr_.get("DESKTOP_TEXTURE3");
549 items[3]=optionsStr_.get("DESKTOP_TEXTURE4");
550 liGenDeskTexture_=new BuComboBox(items);
551 liGenDeskTexture_.setRenderer(cbRenderer_);
552 liGenDeskTexture_.setEditable(false);
553 liGenDeskTexture_.addActionListener(this);
554 pnGenDesk_.add(lbGenDeskTexture_, nGenDesk++);
555 pnGenDesk_.add(liGenDeskTexture_, nGenDesk++);
556
557 // Couleur
558 lbGenDeskCouleur_=new BuLabel(BuResource.BU.getString("Couleur:"),JLabel.RIGHT);
559 items=new OptionItem[6];
560 items[0]=optionsStr_.get("DESKTOP_ROUGE");
561 items[1]=optionsStr_.get("DESKTOP_VERT");
562 items[2]=optionsStr_.get("DESKTOP_BLEU");
563 items[3]=optionsStr_.get("DESKTOP_ORANGE");
564 items[4]=optionsStr_.get("DESKTOP_SIMILAIRE");
565 items[5]=optionsStr_.get("DESKTOP_DEFAUT");
566 liGenDeskCouleur_=new BuComboBox(items);
567 liGenDeskCouleur_.setRenderer(cbRenderer_);
568 liGenDeskCouleur_.setEditable(false);
569 liGenDeskCouleur_.addActionListener(this);
570 pnGenDesk_.add(lbGenDeskCouleur_, nGenDesk++);
571 pnGenDesk_.add(liGenDeskCouleur_, nGenDesk++);
572
573 add(pnGenDesk_,BuBorderLayout.CENTER);
574
575 updateComponents();
576 }
577
578 // Evenements
579
580 public void actionPerformed(ActionEvent _evt)
581 {
582 setAbility();
583 }
584
585 // Methodes publiques
586
587 public boolean isPreferencesValidable()
588 { return true; }
589
590 public void validatePreferences()
591 {
592 fillTable();
593 options_.writeIniFile();
594 }
595
596 public boolean isPreferencesApplyable()
597 { return (appli_!=null); }
598
599 public void applyPreferences()
600 {
601 fillTable();
602 options_.applyOn(appli_);
603 }
604
605 public boolean isPreferencesCancelable()
606 { return true; }
607
608 public void cancelPreferences()
609 {
610 options_.readIniFile();
611 updateComponents();
612 }
613
614 // Methodes privees
615
616 private void fillTable()
617 {
618 Object o;
619
620 o=liGenDeskDecor_ .getSelectedItem(); if(o==null) o="DESKTOP_UNIFORME";
621 options_.putStringProperty("desktop.decor" , ""+optionsStr_.get(o));
622
623 o=liGenDeskTexture_.getSelectedItem(); if(o==null) o="DESKTOP_TEXTURE1";
624 options_.putStringProperty("desktop.texture" , ""+optionsStr_.get(o));
625
626 o=liGenDeskCouleur_.getSelectedItem(); if(o==null) o="DESKTOP_DEFAUT";
627 options_.putStringProperty("desktop.background" , ""+optionsStr_.get(o));
628
629 o=liGenAspAspect_.getSelectedItem(); if(o==null) o="ASPECT_DEFAUT";
630 options_.putStringProperty("lookandfeel.name" , ""+optionsStr_.get(o));
631
632 o=liGenAspMetal_.getSelectedItem(); if(o==null) o="THEME_METAL0";
633 options_.putStringProperty("metal.theme" , ""+optionsStr_.get(o));
634
635 o=liGenAspSlaf_.getSelectedItem(); if(o==null) o="default";
636 options_.putStringProperty("slaf.theme" , ""+optionsStr_.get(o));
637
638 o=chIcones_.getSelectedItem(); if(o==null) o="16";
639 options_.putStringProperty("icons.size" , ""+optionsStr_.get(o));
640
641 options_.putStringProperty("skinlf.theme",tfGenAspSkinlf_.getText());
642 options_.putStringProperty("oyoaha.theme",tfGenAspOyoaha_.getText());
643 }
644
645 private void updateComponents()
646 {
647 liGenDeskDecor_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("desktop.decor" ,"DESKTOP_UNIFORME" )));
648 liGenDeskTexture_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("desktop.texture" ,"DESKTOP_TEXTURE1" )));
649 liGenDeskCouleur_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("desktop.background","DESKTOP_DEFAUT" )));
650 liGenAspAspect_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("lookandfeel.name" ,"ASPECT_DEFAUT" )));
651 liGenAspMetal_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("metal.theme" ,"THEME_METAL0" )));
652 liGenAspSlaf_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("slaf.theme" ,"default" )));
653 chIcones_ .setSelectedItem(optionsStr_.get(options_.getStringProperty("icons.size" ,"16" )));
654
655 tfGenAspSkinlf_.setText
656 (options_.getStringProperty
657 ("skinlf.theme","/usr/share/themes/Chrome/gtk/gtkrc"));
658 tfGenAspOyoaha_.setText
659 (options_.getStringProperty
660 ("oyoaha.theme","slushy.otm"));
661 setAbility();
662 }
663
664 private void setAbility()
665 {
666 boolean b;
667
668 b=(liGenDeskDecor_.getSelectedItem()==optionsStr_.get("DESKTOP_TEXTURE"));
669 liGenDeskTexture_.setEnabled(b);
670 liGenDeskCouleur_.setEnabled(!b);
671
672 b=(liGenAspAspect_.getSelectedItem()==optionsStr_.get("ASPECT_METAL"));
673 liGenAspMetal_.setEnabled(b);
674
675 b=(liGenAspAspect_.getSelectedItem()==optionsStr_.get("ASPECT_SLAF"));
676 liGenAspSlaf_.setEnabled(b);
677
678 b=(liGenAspAspect_.getSelectedItem()==optionsStr_.get("ASPECT_SKINLF"));
679 tfGenAspSkinlf_.setEnabled(b);
680
681 b=(liGenAspAspect_.getSelectedItem()==optionsStr_.get("ASPECT_OYOAHA"));
682 tfGenAspOyoaha_.setEnabled(b);
683 }
684 }