示例#1
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;
 }
示例#2
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);
       }
     }
   }
 }