protected void buildPanel() { setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add( new JLabel(preferenceSetting.getTitle()), GBC.eol().insets(0, 5, 0, 10).anchor(GBC.NORTHWEST)); JLabel descLabel = new JLabel("<html>" + preferenceSetting.getDescription() + "</html>"); descLabel.setFont(descLabel.getFont().deriveFont(Font.ITALIC)); add(descLabel, GBC.eol().insets(5, 0, 5, 20).fill(GBC.HORIZONTAL)); }
private void insertGUITabsForSetting(Icon icon, TabPreferenceSetting tps, int index) { int position = index; for (PreferenceTab tab : tabs) { if (tab.getTabPreferenceSetting().equals(tps)) { insertTab(null, icon, tab.getComponent(), tps.getTooltip(), position++); } } }
public boolean selectSubTabByPref(Class<? extends SubPreferenceSetting> clazz) { for (PreferenceSetting setting : settings) { if (clazz.isInstance(setting)) { final SubPreferenceSetting sub = (SubPreferenceSetting) setting; final TabPreferenceSetting tab = sub.getTabPreferenceSetting(PreferenceTabbedPane.this); selectTabBy( new TabIdentifier() { @Override public boolean identify(TabPreferenceSetting tps, Object unused) { return tps.equals(tab); } }, null); return tab.selectSubTab(sub); } } return false; }
@Override public void stateChanged(ChangeEvent e) { int index = getSelectedIndex(); Component sel = getSelectedComponent(); if (index > -1 && sel instanceof PreferenceTab) { PreferenceTab tab = (PreferenceTab) sel; TabPreferenceSetting preferenceSettings = tab.getTabPreferenceSetting(); if (!settingsInitialized.contains(preferenceSettings)) { try { getModel().removeChangeListener(this); preferenceSettings.addGui(this); // Add GUI for sub preferences for (PreferenceSetting setting : settings) { if (setting instanceof SubPreferenceSetting) { SubPreferenceSetting sps = (SubPreferenceSetting) setting; if (sps.getTabPreferenceSetting(this) == preferenceSettings) { try { sps.addGui(this); } catch (SecurityException ex) { ex.printStackTrace(); } catch (Throwable ex) { BugReportExceptionHandler.handleException(ex); } finally { settingsInitialized.add(sps); } } } } Icon icon = getIconAt(index); remove(index); insertGUITabsForSetting(icon, preferenceSettings, index); setSelectedIndex(index); } catch (SecurityException ex) { ex.printStackTrace(); } catch (Throwable ex) { // allow to change most settings even if e.g. a plugin fails BugReportExceptionHandler.handleException(ex); } finally { settingsInitialized.add(preferenceSettings); getModel().addChangeListener(this); } } } }
private void addGUITabs(boolean clear) { boolean expert = ExpertToggleAction.isExpert(); Component sel = getSelectedComponent(); if (clear) { removeAll(); } // Inspect each tab setting for (PreferenceSetting setting : settings) { if (setting instanceof TabPreferenceSetting) { TabPreferenceSetting tps = (TabPreferenceSetting) setting; if (expert || !tps.isExpert()) { // Get icon String iconName = tps.getIconName(); ImageIcon icon = iconName != null && iconName.length() > 0 ? ImageProvider.get("preferences", iconName) : null; // See #6985 - Force icons to be 48x48 pixels if (icon != null && (icon.getIconHeight() != 48 || icon.getIconWidth() != 48)) { icon = new ImageIcon(icon.getImage().getScaledInstance(48, 48, Image.SCALE_DEFAULT)); } if (settingsInitialized.contains(tps)) { // If it has been initialized, add corresponding tab(s) addGUITabsForSetting(icon, tps); } else { // If it has not been initialized, create an empty tab with only icon and tooltip addTab(null, icon, new PreferencePanel(tps), tps.getTooltip()); } } } else if (!(setting instanceof SubPreferenceSetting)) { Main.warn("Ignoring preferences " + setting); } } try { if (sel != null) { setSelectedComponent(sel); } } catch (IllegalArgumentException e) { } }