예제 #1
0
    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));
    }
예제 #2
0
 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++);
     }
   }
 }
예제 #3
0
 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;
 }
예제 #4
0
 @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);
       }
     }
   }
 }
예제 #5
0
 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) {
   }
 }