001: /*
002: * Copyright 2001-2006 C:1 Financial Services GmbH
003: *
004: * This software is free software; you can redistribute it and/or
005: * modify it under the terms of the GNU Lesser General Public
006: * License Version 2.1, as published by the Free Software Foundation.
007: *
008: * This software is distributed in the hope that it will be useful,
009: * but WITHOUT ANY WARRANTY; without even the implied warranty of
010: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
011: * Lesser General Public License for more details.
012: *
013: * You should have received a copy of the GNU Lesser General Public
014: * License along with this library; if not, write to the Free Software
015: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
016: */
017:
018: package de.finix.contelligent.client.modules.preferences;
019:
020: import java.awt.BorderLayout;
021: import java.awt.Dimension;
022: import java.awt.FlowLayout;
023: import java.awt.Font;
024: import java.awt.LayoutManager;
025: import java.awt.event.ActionEvent;
026: import java.awt.event.ActionListener;
027:
028: import javax.swing.BorderFactory;
029: import javax.swing.Box;
030: import javax.swing.BoxLayout;
031: import javax.swing.JButton;
032: import javax.swing.JCheckBox;
033: import javax.swing.JComboBox;
034: import javax.swing.JLabel;
035: import javax.swing.JPanel;
036: import javax.swing.JScrollPane;
037: import javax.swing.JTabbedPane;
038: import javax.swing.JTextArea;
039: import javax.swing.JTextField;
040:
041: import de.finix.contelligent.client.ContelligentClient;
042: import de.finix.contelligent.client.MainPanel.LaunchModuleAction;
043: import de.finix.contelligent.client.gui.ContelligentAction;
044: import de.finix.contelligent.client.i18n.Resources;
045: import de.finix.contelligent.client.modules.AbstractModule;
046: import de.finix.contelligent.client.modules.ModuleDescription;
047: import de.finix.contelligent.client.modules.ModuleInitException;
048: import de.finix.contelligent.client.modules.ModuleRegistry;
049: import de.finix.contelligent.client.util.TableLayout;
050:
051: public class NewPreferencesModule extends AbstractModule {
052:
053: private LayoutManager leftLayout = new FlowLayout(FlowLayout.LEFT);
054:
055: private Font headlineFont = Font.decode("Arial-BOLD-18");
056:
057: private Font topicFont = Font.decode("Arial-BOLD-12");
058:
059: private Font descFont = Font.getFont("Arial-PLAIN-9"); // Default font
060:
061: JComboBox langComboBox;
062:
063: JTextField tabField;
064:
065: JComboBox themeComboBox;
066:
067: JTextField fontsizeField;
068:
069: JTextField visibleComponentsField;
070:
071: JTextField submenuItemsField;
072:
073: JTextField cachesizeField;
074:
075: JCheckBox mempanelCB;
076:
077: JCheckBox linktgtCB;
078:
079: JCheckBox cascadeCB;
080:
081: JCheckBox editallCB;
082:
083: JCheckBox detaggingCB;
084:
085: JCheckBox advcopyCB;
086:
087: JCheckBox breaklinesCB;
088:
089: JCheckBox prefillNameCB;
090:
091: JCheckBox legacyTypesCB;
092:
093: JCheckBox disableBreadcrumbBarCB;
094:
095: JCheckBox highlightCB;
096:
097: JTextField updateIntervalField;
098:
099: public NewPreferencesModule() {
100: super ();
101: }
102:
103: public void init() throws ModuleInitException {
104: setPreferredSize(new Dimension(550, 420));
105: setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
106: this .setLayout(new BorderLayout());
107: JPanel confirmPanel = new JPanel();
108: confirmPanel.setLayout(new BoxLayout(confirmPanel,
109: BoxLayout.LINE_AXIS));
110: confirmPanel.add(Box.createHorizontalGlue());
111: JButton okButton = new JButton(Resources.getLocalString("ok"));
112: okButton.addActionListener(new ActionListener() {
113: public void actionPerformed(ActionEvent e) {
114: // Language must be switched *after* all other localized fields
115: // (if any) have been processed
116: if (langComboBox.getSelectedItem().equals(
117: Resources.getLocalString("lang_english"))) {
118: PreferencesModule.getPreferences().put(
119: PreferencesModule.LANGUAGE, "en");
120: PreferencesModule.getPreferences().put(
121: PreferencesModule.COUNTRY, "US");
122: } else {
123: PreferencesModule.getPreferences().put(
124: PreferencesModule.LANGUAGE, "de");
125: PreferencesModule.getPreferences().put(
126: PreferencesModule.COUNTRY, "DE");
127: }
128: PreferencesModule.getPreferences().putInt(
129: PreferencesModule.TAB_WIDTH,
130: Integer.parseInt(tabField.getText()));
131:
132: PreferencesModule.getPreferences().put(
133: PreferencesModule.CLIENT_THEME,
134: (String) themeComboBox.getSelectedItem());
135: PreferencesModule.getPreferences().putInt(
136: PreferencesModule.FONTSIZE_OFFSET,
137: Integer.parseInt(fontsizeField.getText()));
138:
139: PreferencesModule.getPreferences().putInt(
140: PreferencesModule.VISIBLE_COMPONENTS_IN_FOLDER,
141: Integer.parseInt(visibleComponentsField
142: .getText()));
143: PreferencesModule.getPreferences().putInt(
144: PreferencesModule.MAX_SUBMENU_ITEMS,
145: Integer.parseInt(submenuItemsField.getText()));
146: PreferencesModule.getPreferences().putInt(
147: PreferencesModule.CACHED_COMPONENTS,
148: Integer.parseInt(cachesizeField.getText()));
149: PreferencesModule.getPreferences().putBoolean(
150: PreferencesModule.SHOW_MEM_PANEL,
151: mempanelCB.isSelected());
152: PreferencesModule.getPreferences().putBoolean(
153: PreferencesModule.SHOW_LINK_TARGETS,
154: linktgtCB.isSelected());
155: PreferencesModule.getPreferences().putBoolean(
156: PreferencesModule.CASCADE_FORMS,
157: cascadeCB.isSelected());
158: PreferencesModule.getPreferences().putBoolean(
159: PreferencesModule.EDIT_ALL_GROUPS,
160: editallCB.isSelected());
161: PreferencesModule.getPreferences().putBoolean(
162: PreferencesModule.ALLOW_DETAGGING,
163: detaggingCB.isSelected());
164: PreferencesModule.getPreferences().putBoolean(
165: PreferencesModule.ADVANCED_COPY,
166: advcopyCB.isSelected());
167: PreferencesModule.getPreferences().putBoolean(
168: PreferencesModule.BREAK_LINES,
169: breaklinesCB.isSelected());
170: PreferencesModule.getPreferences().putBoolean(
171: PreferencesModule.PREFILL_NEW_NAME,
172: prefillNameCB.isSelected());
173: PreferencesModule.getPreferences().putBoolean(
174: PreferencesModule.LEGACY_TYPES,
175: legacyTypesCB.isSelected());
176: PreferencesModule.getPreferences().putBoolean(
177: PreferencesModule.DISABLE_BREADCRUMB_BAR,
178: disableBreadcrumbBarCB.isSelected());
179: PreferencesModule.getPreferences().putBoolean(
180: PreferencesModule.ENABLE_HIGHLIGHTING,
181: highlightCB.isSelected());
182: PreferencesModule.getServerPreferences()
183: .putInt(
184: PreferencesModule.UPDATE_INTERVAL,
185: Integer.parseInt(updateIntervalField
186: .getText()));
187: ContelligentClient.getActiveFrame().dispose();
188: }
189: });
190: JButton cancelButton = new JButton(Resources
191: .getLocalString("cancel"));
192: cancelButton.addActionListener(new ActionListener() {
193: public void actionPerformed(ActionEvent e) {
194: ContelligentClient.getActiveFrame().dispose();
195: }
196: });
197: JButton advancedButton = new JButton(Resources
198: .getLocalString("advanced_preferences"));
199: advancedButton.addActionListener(new ActionListener() {
200: public void actionPerformed(ActionEvent e) {
201: ModuleDescription oldPreferencesModule = new ModuleDescription(
202: ModuleRegistry.getInstance().getImpl(
203: "Preferences"), "preferences",
204: ContelligentAction.TOOLS_ACTION, "preferences",
205: true, false, false, false, null,
206: ContelligentClient.defaultClientEnvironment);
207: LaunchModuleAction prefsAction = ContelligentClient
208: .getFrame().getMainPanel()
209: .buildLaunchModuleAction(oldPreferencesModule);
210: ContelligentClient.getActiveFrame().dispose();
211: prefsAction.actionPerformed(new ActionEvent(this , 0,
212: "dummy"));
213: }
214: });
215: confirmPanel.add(okButton);
216: confirmPanel.add(Box.createRigidArea(new Dimension(10, 0)));
217: confirmPanel.add(cancelButton);
218: confirmPanel.add(Box.createRigidArea(new Dimension(10, 0)));
219: confirmPanel.add(advancedButton);
220: confirmPanel.setBorder(BorderFactory.createEmptyBorder(10, 10,
221: 10, 10));
222: add(confirmPanel, BorderLayout.SOUTH);
223: JPanel generalPanel = buildGeneralPanel();
224: JScrollPane generalScroller = new JScrollPane(generalPanel);
225: generalScroller.getViewport().setOpaque(false);
226: generalScroller.setOpaque(false);
227: generalScroller
228: .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
229: generalScroller
230: .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
231: JPanel displayPanel = buildDisplayPanel();
232: JScrollPane displayScroller = new JScrollPane(displayPanel);
233: displayScroller.getViewport().setOpaque(false);
234: displayScroller.setOpaque(false);
235: displayScroller
236: .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
237: displayScroller
238: .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
239: JPanel advancedPanel = buildAdvancedPanel();
240: JScrollPane advancedScroller = new JScrollPane(advancedPanel);
241: advancedScroller.getViewport().setOpaque(false);
242: advancedScroller.setOpaque(false);
243: advancedScroller
244: .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
245: advancedScroller
246: .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
247: JTabbedPane tabbedPane = new JTabbedPane();
248: tabbedPane.addTab(Resources.getLocalString("newprefs_general"),
249: Resources.addComponentIcon, generalScroller);
250: tabbedPane.addTab(Resources.getLocalString("newprefs_display"),
251: Resources.contelligentIcon, displayScroller);
252: tabbedPane.addTab(
253: Resources.getLocalString("newprefs_advanced"),
254: Resources.performActionIcon, advancedScroller);
255: add(tabbedPane, BorderLayout.CENTER);
256: }
257:
258: private JPanel buildGeneralPanel() {
259: JPanel generalPanel = new JPanel();
260: generalPanel.setOpaque(false);
261: LayoutManager tableLayout = new TableLayout(new String[][] {
262: { "5", "PREFERRED", "5", "FILL", "20" },
263: { "PREFERRED=headline", "15",
264: "PREFERRED=language_topic", "5",
265: "PREFERRED=language_desc", "5",
266: "PREFERRED=language", "15",
267: "PREFERRED=tabwidth_topic", "5",
268: "PREFERRED=tabwidth_desc", "5",
269: "PREFERRED=tabwidth", "15",
270: "PREFERRED=breaklines_topic", "5",
271: "PREFERRED=breaklines_desc", "5",
272: "PREFERRED=breaklines", "15", "FILL" } });
273: generalPanel.setLayout(tableLayout);
274: generalPanel.add(buildText("general_settings", headlineFont),
275: "1,headline,3,0");
276: generalPanel.add(buildText("language_topic", topicFont),
277: "1,language_topic,3,0");
278: generalPanel.add(buildText("language_desc", descFont),
279: "1,language_desc,3,0");
280: generalPanel.add(new JLabel(Resources
281: .getLocalString("language_select")), "1,language");
282: langComboBox = new JComboBox();
283: langComboBox.addItem(Resources.getLocalString("lang_german"));
284: langComboBox.addItem(Resources.getLocalString("lang_english"));
285: String currentLanguage = PreferencesModule.getPreferences()
286: .get(PreferencesModule.LANGUAGE,
287: PreferencesModule.DEFAULT_LANGUAGE);
288: if (currentLanguage.toLowerCase().equals("en")) {
289: langComboBox.setSelectedItem(Resources
290: .getLocalString("lang_english"));
291: } else {
292: langComboBox.setSelectedItem(Resources
293: .getLocalString("lang_german"));
294: }
295: generalPanel.add(langComboBox, "3,language");
296:
297: generalPanel.add(buildText("tabwidth_topic", topicFont),
298: "1,tabwidth_topic,3,0");
299: generalPanel.add(buildText("tabwidth_desc", descFont),
300: "1,tabwidth_desc,3,0");
301: generalPanel.add(new JLabel(Resources
302: .getLocalString("tab_width")), "1,tabwidth");
303: tabField = new JTextField();
304: tabField.setText(Integer.toString(PreferencesModule
305: .getPreferences().getInt(PreferencesModule.TAB_WIDTH,
306: PreferencesModule.DEFAULT_TAB_WIDTH)));
307: generalPanel.add(tabField, "3,tabwidth");
308:
309: generalPanel.add(buildText("breaklines_topic", topicFont),
310: "1,breaklines_topic,3,0");
311: generalPanel.add(buildText("breaklines_desc", descFont),
312: "1,breaklines_desc,3,0");
313: breaklinesCB = new JCheckBox(Resources
314: .getLocalString("break_text_lines"));
315: breaklinesCB.setOpaque(false);
316: breaklinesCB.setSelected(PreferencesModule.getPreferences()
317: .getBoolean(PreferencesModule.BREAK_LINES,
318: PreferencesModule.DEFAULT_BREAK_LINES));
319: generalPanel.add(breaklinesCB, "1,breaklines,3,0");
320:
321: return generalPanel;
322: }
323:
324: private JPanel buildDisplayPanel() {
325: JPanel displayPanel = new JPanel();
326: displayPanel.setOpaque(false);
327: LayoutManager tableLayout = new TableLayout(new String[][] {
328: { "5", "PREFERRED", "5", "FILL", "20" },
329: { "PREFERRED=headline", "15", "PREFERRED=theme_topic",
330: "5", "PREFERRED=theme_desc", "5",
331: "PREFERRED=theme", "15",
332: "PREFERRED=fontsize_topic", "5",
333: "PREFERRED=fontsize_desc", "5",
334: "PREFERRED=fontsize", "15",
335: "PREFERRED=visiblecomponents_topic", "5",
336: "PREFERRED=visiblecomponents_desc", "5",
337: "PREFERRED=visiblecomponents", "15",
338: "PREFERRED=submenuitems_topic", "5",
339: "PREFERRED=submenuitems_desc", "5",
340: "PREFERRED=submenuitems", "15",
341: "PREFERRED=highlight_topic", "5",
342: "PREFERRED=highlight_desc", "5",
343: "PREFERRED=highlight", "15", "FILL" } });
344: displayPanel.setLayout(tableLayout);
345: displayPanel.add(buildText("display_settings", headlineFont),
346: "1,headline,3,0");
347: displayPanel.add(buildText("theme_topic", topicFont),
348: "1,theme_topic,3,0");
349: displayPanel.add(buildText("theme_desc", descFont),
350: "1,theme_desc,3,0");
351: displayPanel.add(new JLabel(Resources
352: .getLocalString("theme_select")), "1,theme");
353: themeComboBox = new JComboBox();
354: themeComboBox.addItem("default");
355: themeComboBox.addItem("vs2005");
356: themeComboBox.addItem("system");
357: themeComboBox.addItem("kunststoff");
358: themeComboBox.addItem("plastic");
359: themeComboBox.addItem("plastic3d");
360: themeComboBox.addItem("plasticxp");
361: String currentTheme = PreferencesModule.getPreferences().get(
362: PreferencesModule.CLIENT_THEME,
363: PreferencesModule.DEFAULT_CLIENT_THEME);
364: themeComboBox.setSelectedItem(currentTheme);
365: displayPanel.add(themeComboBox, "3,theme");
366:
367: displayPanel.add(buildText("fontsize_topic", topicFont),
368: "1,fontsize_topic,3,0");
369: displayPanel.add(buildText("fontsize_desc", descFont),
370: "1,fontsize_desc,3,0");
371: displayPanel.add(new JLabel(Resources
372: .getLocalString("font_size")), "1,fontsize");
373: fontsizeField = new JTextField();
374: fontsizeField.setText(Integer.toString(PreferencesModule
375: .getPreferences().getInt(
376: PreferencesModule.FONTSIZE_OFFSET,
377: PreferencesModule.DEFAULT_FONTSIZE_OFFSET)));
378: displayPanel.add(fontsizeField, "3,fontsize");
379:
380: displayPanel.add(
381: buildText("visiblecomponents_topic", topicFont),
382: "1,visiblecomponents_topic,3,0");
383: displayPanel.add(buildText("visiblecomponents_desc", descFont),
384: "1,visiblecomponents_desc,3,0");
385: displayPanel.add(new JLabel(Resources
386: .getLocalString("visible_in_folder")),
387: "1,visiblecomponents");
388: visibleComponentsField = new JTextField();
389: visibleComponentsField
390: .setText(Integer
391: .toString(PreferencesModule
392: .getPreferences()
393: .getInt(
394: PreferencesModule.VISIBLE_COMPONENTS_IN_FOLDER,
395: PreferencesModule.DEFAULT_VISIBLE_COMPONENTS_IN_FOLDER)));
396: displayPanel.add(visibleComponentsField, "3,visiblecomponents");
397:
398: displayPanel.add(buildText("submenuitems_topic", topicFont),
399: "1,submenuitems_topic,3,0");
400: displayPanel.add(buildText("submenuitems_desc", descFont),
401: "1,submenuitems_desc,3,0");
402: displayPanel.add(new JLabel(Resources
403: .getLocalString("items_per_submenu")),
404: "1, submenuitems");
405: submenuItemsField = new JTextField();
406: submenuItemsField.setText(Integer.toString(PreferencesModule
407: .getPreferences().getInt(
408: PreferencesModule.MAX_SUBMENU_ITEMS,
409: PreferencesModule.DEFAULT_MAX_SUBMENU_ITEMS)));
410: displayPanel.add(submenuItemsField, "3, submenuitems");
411:
412: displayPanel.add(buildText("highlight_topic", topicFont),
413: "1,highlight_topic,3,0");
414: displayPanel.add(buildText("highlight_desc", descFont),
415: "1,highlight_desc,3,0");
416: highlightCB = new JCheckBox(Resources
417: .getLocalString("enable_highlighting"));
418: highlightCB.setOpaque(false);
419: highlightCB.setSelected(PreferencesModule.getPreferences()
420: .getBoolean(PreferencesModule.ENABLE_HIGHLIGHTING,
421: PreferencesModule.DEFAULT_ENABLE_HIGHLIGHTING));
422: displayPanel.add(highlightCB, "1,highlight,3,0");
423:
424: return displayPanel;
425: }
426:
427: private JPanel buildAdvancedPanel() {
428: JPanel advancedPanel = new JPanel();
429: advancedPanel.setOpaque(false);
430: LayoutManager tableLayout = new TableLayout(new String[][] {
431: { "5", "PREFERRED", "5", "FILL", "20" },
432: { "PREFERRED=headline", "15",
433: "PREFERRED=cachesize_topic", "5",
434: "PREFERRED=cachesize_desc", "5",
435: "PREFERRED=cachesize", "15",
436: "PREFERRED=mempanel_topic", "5",
437: "PREFERRED=mempanel_desc", "5",
438: "PREFERRED=mempanel", "15",
439: "PREFERRED=linktgt_topic", "5",
440: "PREFERRED=linktgt_desc", "5",
441: "PREFERRED=linktgt", "15",
442: "PREFERRED=cascadeforms_topic", "5",
443: "PREFERRED=cascadeforms_desc", "5",
444: "PREFERRED=cascadeforms", "15",
445: "PREFERRED=editallgroups_topic", "5",
446: "PREFERRED=editallgroups_desc", "5",
447: "PREFERRED=editallgroups", "15",
448: "PREFERRED=detagging_topic", "5",
449: "PREFERRED=detagging_desc", "5",
450: "PREFERRED=detagging", "15",
451: "PREFERRED=advancedcopy_topic", "5",
452: "PREFERRED=advancedcopy_desc", "5",
453: "PREFERRED=advancedcopy", "15",
454: "PREFERRED=updateinterval_topic", "5",
455: "PREFERRED=updateinterval_desc", "5",
456: "PREFERRED=updateinterval", "15",
457: "PREFERRED=prefillname_topic", "5",
458: "PREFERRED=prefillname_desc", "5",
459: "PREFERRED=prefillname", "15",
460: "PREFERRED=legacytypes_topic", "5",
461: "PREFERRED=legacytypes_desc", "5",
462: "PREFERRED=legacytypes", "15",
463: "PREFERRED=disablebcbar_topic", "5",
464: "PREFERRED=disablebcbar_desc", "5",
465: "PREFERRED=disablebcbar", "15", "FILL" } });
466: advancedPanel.setLayout(tableLayout);
467: advancedPanel.add(buildText("advanced_settings", headlineFont),
468: "1,headline,3,0");
469:
470: advancedPanel.add(buildText("cachesize_topic", topicFont),
471: "1,cachesize_topic,3,0");
472: advancedPanel.add(buildText("cachesize_desc", descFont),
473: "1,cachesize_desc,3,0");
474: advancedPanel.add(new JLabel(Resources
475: .getLocalString("cachesize")), "1,cachesize");
476: cachesizeField = new JTextField();
477: cachesizeField.setText(Integer.toString(PreferencesModule
478: .getPreferences().getInt(
479: PreferencesModule.CACHED_COMPONENTS,
480: PreferencesModule.DEFAULT_CACHED_COMPONENTS)));
481: advancedPanel.add(cachesizeField, "3,cachesize");
482:
483: advancedPanel.add(buildText("mempanel_topic", topicFont),
484: "1,mempanel_topic,3,0");
485: advancedPanel.add(buildText("mempanel_desc", descFont),
486: "1,mempanel_desc,3,0");
487: mempanelCB = new JCheckBox(Resources
488: .getLocalString("show_memory_panel"));
489: mempanelCB.setOpaque(false);
490: mempanelCB.setSelected(PreferencesModule.getPreferences()
491: .getBoolean(PreferencesModule.SHOW_MEM_PANEL,
492: PreferencesModule.DEFAULT_SHOW_MEM_PANEL));
493: advancedPanel.add(mempanelCB, "1,mempanel,3,0");
494:
495: advancedPanel.add(buildText("linktgt_topic", topicFont),
496: "1,linktgt_topic,3,0");
497: advancedPanel.add(buildText("linktgt_desc", descFont),
498: "1,linktgt_desc,3,0");
499: linktgtCB = new JCheckBox(Resources
500: .getLocalString("show_link_targets"));
501: linktgtCB.setOpaque(false);
502: linktgtCB.setSelected(PreferencesModule.getPreferences()
503: .getBoolean(PreferencesModule.SHOW_LINK_TARGETS,
504: PreferencesModule.DEFAULT_SHOW_LINK_TARGETS));
505: advancedPanel.add(linktgtCB, "1,linktgt,3,0");
506:
507: advancedPanel.add(buildText("cascadeforms_topic", topicFont),
508: "1,cascadeforms_topic,3,0");
509: advancedPanel.add(buildText("cascadeforms_desc", descFont),
510: "1,cascadeforms_desc,3,0");
511: cascadeCB = new JCheckBox(Resources
512: .getLocalString("cascade_forms"));
513: cascadeCB.setOpaque(false);
514: cascadeCB.setSelected(PreferencesModule.getPreferences()
515: .getBoolean(PreferencesModule.CASCADE_FORMS,
516: PreferencesModule.DEFAULT_CASCADE_FORMS));
517: advancedPanel.add(cascadeCB, "1,cascadeforms,3,0");
518:
519: advancedPanel.add(buildText("editallgroups_topic", topicFont),
520: "1,editallgroups_topic,3,0");
521: advancedPanel.add(buildText("editallgroups_desc", descFont),
522: "1,editallgroups_desc,3,0");
523: editallCB = new JCheckBox(Resources
524: .getLocalString("edit_all_groups"));
525: editallCB.setOpaque(false);
526: editallCB.setSelected(PreferencesModule.getPreferences()
527: .getBoolean(PreferencesModule.EDIT_ALL_GROUPS,
528: PreferencesModule.DEFAULT_EDIT_ALL_GROUPS));
529: advancedPanel.add(editallCB, "1,editallgroups,3,0");
530:
531: advancedPanel.add(buildText("detagging_topic", topicFont),
532: "1,detagging_topic,3,0");
533: advancedPanel.add(buildText("detagging_desc", descFont),
534: "1,detagging_desc,3,0");
535: detaggingCB = new JCheckBox(Resources
536: .getLocalString("allow_detagging"));
537: detaggingCB.setOpaque(false);
538: detaggingCB.setSelected(PreferencesModule.getPreferences()
539: .getBoolean(PreferencesModule.ALLOW_DETAGGING,
540: PreferencesModule.DEFAULT_ALLOW_DETAGGING));
541: advancedPanel.add(detaggingCB, "1,detagging,3,0");
542:
543: advancedPanel.add(buildText("advancedcopy_topic", topicFont),
544: "1,advancedcopy_topic,3,0");
545: advancedPanel.add(buildText("advancedcopy_desc", descFont),
546: "1,advancedcopy_desc,3,0");
547: advcopyCB = new JCheckBox(Resources
548: .getLocalString("advanced_copy"));
549: advcopyCB.setOpaque(false);
550: advcopyCB.setSelected(PreferencesModule.getPreferences()
551: .getBoolean(PreferencesModule.ADVANCED_COPY,
552: PreferencesModule.DEFAULT_ADVANCED_COPY));
553: advancedPanel.add(advcopyCB, "1,advancedcopy,3,0");
554:
555: advancedPanel.add(buildText("updateinterval_topic", topicFont),
556: "1,updateinterval_topic,3,0");
557: advancedPanel.add(buildText("updateinterval_desc", descFont),
558: "1,updateinterval_desc,3,0");
559: advancedPanel
560: .add(new JLabel(Resources
561: .getLocalString("update_interval")),
562: "1,updateinterval");
563: updateIntervalField = new JTextField();
564: updateIntervalField.setText(Integer.toString(PreferencesModule
565: .getServerPreferences().getInt(
566: PreferencesModule.UPDATE_INTERVAL,
567: PreferencesModule.DEFAULT_UPDATE_INTERVAL)));
568: advancedPanel.add(updateIntervalField, "3,updateinterval");
569:
570: advancedPanel.add(buildText("prefillname_topic", topicFont),
571: "1,prefillname_topic,3,0");
572: advancedPanel.add(buildText("prefillname_desc", descFont),
573: "1,prefillname_desc,3,0");
574: prefillNameCB = new JCheckBox(Resources
575: .getLocalString("prefill_name"));
576: prefillNameCB.setOpaque(false);
577: prefillNameCB.setSelected(PreferencesModule.getPreferences()
578: .getBoolean(PreferencesModule.PREFILL_NEW_NAME,
579: PreferencesModule.DEFAULT_PREFILL_NEW_NAME));
580: advancedPanel.add(prefillNameCB, "1,prefillname,3,0");
581:
582: advancedPanel.add(buildText("legacytypes_topic", topicFont),
583: "1,legacytypes_topic,3,0");
584: advancedPanel.add(buildText("legacytypes_desc", descFont),
585: "1,legacytypes_desc,3,0");
586: legacyTypesCB = new JCheckBox(Resources
587: .getLocalString("legacy_types"));
588: legacyTypesCB.setOpaque(false);
589: legacyTypesCB.setSelected(PreferencesModule.getPreferences()
590: .getBoolean(PreferencesModule.LEGACY_TYPES,
591: PreferencesModule.DEFAULT_LEGACY_TYPES));
592: advancedPanel.add(legacyTypesCB, "1,legacytypes,3,0");
593:
594: advancedPanel.add(buildText("disablebcbar_topic", topicFont),
595: "1,disablebcbar_topic,3,0");
596: advancedPanel.add(buildText("disablebcbar_desc", descFont),
597: "1,disablebcbar_desc,3,0");
598: disableBreadcrumbBarCB = new JCheckBox(Resources
599: .getLocalString("disable_breadcrumb_bar"));
600: disableBreadcrumbBarCB.setOpaque(false);
601: disableBreadcrumbBarCB
602: .setSelected(PreferencesModule
603: .getPreferences()
604: .getBoolean(
605: PreferencesModule.DISABLE_BREADCRUMB_BAR,
606: PreferencesModule.DEFAULT_DISABLE_BREADCRUMB_BAR));
607: advancedPanel.add(disableBreadcrumbBarCB, "1,disablebcbar,3,0");
608:
609: return advancedPanel;
610: }
611:
612: private JPanel buildText(String text, Font font) {
613: JPanel textPanel = new JPanel();
614: textPanel.setOpaque(false);
615: textPanel.setLayout(new BoxLayout(textPanel, BoxLayout.X_AXIS));
616: JTextArea label = new JTextArea(Resources.getLocalString(text));
617: label.setOpaque(false);
618: label.setLineWrap(true);
619: label.setWrapStyleWord(true);
620: label.setEditable(false);
621: label.setFocusable(false);
622: label.setFont(font);
623: textPanel.add(label);
624: textPanel.add(Box.createHorizontalGlue());
625: return textPanel;
626: }
627:
628: public boolean isLightweightFrame() {
629: // Prevent the menu bar and toolbar from being added if we are opened in
630: // a frame
631: return true;
632: }
633:
634: }
|