/** * Initializes itself from the dialog settings with the same state as at the previous invocation. */ protected void readSettings(IDialogSettings section) { try { int x = section.getInt(SETTINGS_X_POS); int y = section.getInt(SETTINGS_Y_POS); fLocation = new Point(x, y); int width = section.getInt(SETTINGS_WIDTH); int height = section.getInt(SETTINGS_HEIGHT); fSize = new Point(width, height); } catch (NumberFormatException e) { fLocation = null; fSize = null; } if (section.getBoolean(SETTINGS_SHOW_NAMESPACES)) { Integer typeObject = new Integer(ICElement.C_NAMESPACE); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_CLASSES)) { Integer typeObject = new Integer(ICElement.C_CLASS); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_STRUCTS)) { Integer typeObject = new Integer(ICElement.C_STRUCT); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_TYPEDEFS)) { Integer typeObject = new Integer(ICElement.C_TYPEDEF); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_ENUMS)) { Integer typeObject = new Integer(ICElement.C_ENUMERATION); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_UNIONS)) { Integer typeObject = new Integer(ICElement.C_UNION); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_FUNCTIONS)) { Integer typeObject = new Integer(ICElement.C_FUNCTION); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_VARIABLES)) { Integer typeObject = new Integer(ICElement.C_VARIABLE); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_ENUMERATORS)) { Integer typeObject = new Integer(ICElement.C_ENUMERATOR); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (section.getBoolean(SETTINGS_SHOW_MACROS)) { Integer typeObject = new Integer(ICElement.C_MACRO); if (fKnownTypes.contains(typeObject)) fFilterMatcher.getVisibleTypes().add(typeObject); } if (showLowLevelFilter()) { fFilterMatcher.setShowLowLevelTypes(section.getBoolean(SETTINGS_SHOW_LOWLEVEL)); } else { fFilterMatcher.setShowLowLevelTypes(true); } }
/** Stores current configuration in the dialog store. */ protected void writeSettings(IDialogSettings section) { Point location = getShell().getLocation(); section.put(SETTINGS_X_POS, location.x); section.put(SETTINGS_Y_POS, location.y); if (getTray() == null) { // only save size if help tray is not shown Point size = getShell().getSize(); section.put(SETTINGS_WIDTH, size.x); section.put(SETTINGS_HEIGHT, size.y); } section.put( SETTINGS_SHOW_NAMESPACES, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_NAMESPACE))); section.put( SETTINGS_SHOW_CLASSES, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_CLASS))); section.put( SETTINGS_SHOW_STRUCTS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_STRUCT))); section.put( SETTINGS_SHOW_TYPEDEFS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_TYPEDEF))); section.put( SETTINGS_SHOW_ENUMS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_ENUMERATION))); section.put( SETTINGS_SHOW_UNIONS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_UNION))); section.put( SETTINGS_SHOW_FUNCTIONS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_FUNCTION))); section.put( SETTINGS_SHOW_VARIABLES, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_VARIABLE))); section.put( SETTINGS_SHOW_ENUMERATORS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_ENUMERATOR))); section.put( SETTINGS_SHOW_MACROS, fFilterMatcher.getVisibleTypes().contains(new Integer(ICElement.C_MACRO))); section.put(SETTINGS_SHOW_LOWLEVEL, fFilterMatcher.getShowLowLevelTypes()); }
/** Creates a type filter checkbox. */ private void createTypeCheckbox(Composite parent, Integer typeObject) { String name; int type = typeObject.intValue(); switch (type) { case ICElement.C_NAMESPACE: name = TypeInfoMessages.TypeSelectionDialog_filterNamespaces; break; case ICElement.C_CLASS: name = TypeInfoMessages.TypeSelectionDialog_filterClasses; break; case ICElement.C_STRUCT: name = TypeInfoMessages.TypeSelectionDialog_filterStructs; break; case ICElement.C_TYPEDEF: name = TypeInfoMessages.TypeSelectionDialog_filterTypedefs; break; case ICElement.C_ENUMERATION: name = TypeInfoMessages.TypeSelectionDialog_filterEnums; break; case ICElement.C_UNION: name = TypeInfoMessages.TypeSelectionDialog_filterUnions; break; case ICElement.C_FUNCTION: name = TypeInfoMessages.TypeSelectionDialog_filterFunctions; break; case ICElement.C_VARIABLE: name = TypeInfoMessages.TypeSelectionDialog_filterVariables; break; case ICElement.C_ENUMERATOR: name = TypeInfoMessages.TypeSelectionDialog_filterEnumerators; break; case ICElement.C_MACRO: name = TypeInfoMessages.TypeSelectionDialog_filterMacros; break; default: return; } Image icon = TypeInfoLabelProvider.getTypeIcon(type); Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(2, false); layout.marginHeight = 0; composite.setLayout(layout); final Integer fTypeObject = typeObject; Button checkbox = new Button(composite, SWT.CHECK); checkbox.setFont(composite.getFont()); checkbox.setImage(icon); checkbox.setSelection(fFilterMatcher.getVisibleTypes().contains(fTypeObject)); checkbox.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (e.widget instanceof Button) { Button checkbox = (Button) e.widget; if (checkbox.getSelection()) fFilterMatcher.getVisibleTypes().add(fTypeObject); else fFilterMatcher.getVisibleTypes().remove(fTypeObject); updateElements(); } } }); checkbox.setText(name); }