예제 #1
0
  /**
   * 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);
    }
  }
예제 #2
0
  /** 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());
  }
예제 #3
0
  /** 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);
  }