Example #1
0
  /**
   * Sets toolbar mode. This will change the selected toolbar icon.
   *
   * @param newMode see EuclidianConstants for mode numbers
   * @return actual mode number selected (might be different if it's not available)
   */
  public int setMode(int newMode) {
    boolean success = false;
    int tmpMode = newMode;
    // there is no special icon/button for the selection listener mode, use
    // the
    // move mode button instead
    if (tmpMode == EuclidianConstants.MODE_SELECTION_LISTENER) {
      tmpMode = EuclidianConstants.MODE_MOVE;
    }

    if (modeToggleMenus != null) {
      for (int i = 0; i < modeToggleMenus.size(); i++) {
        ModeToggleMenu mtm = modeToggleMenus.get(i);
        if (mtm.selectMode(tmpMode)) {
          success = true;
          break;
        }
      }

      if (!success) {
        mode = setMode(getFirstMode());
      }

      this.mode = tmpMode;
    }

    return tmpMode;
  }
Example #2
0
 /** @return first mode in this toolbar */
 public int getFirstMode() {
   if (modeToggleMenus == null || modeToggleMenus.size() == 0) {
     return -1;
   }
   ModeToggleMenu mtm = modeToggleMenus.get(0);
   return mtm.getFirstMode();
 }
Example #3
0
  /**
   * Adds the given modes to a two-dimensional toolbar. The toolbar definition string looks like "0
   * , 1 2 | 3 4 5 || 7 8 9" where the int values are mode numbers, "," adds a separator within a
   * menu, "|" starts a new menu and "||" adds a separator before starting a new menu.
   *
   * @param modes
   * @param tb
   * @param bg
   */
  private void addCustomModesToToolbar(ModeToggleButtonGroup bg) {
    Vector<ToolbarItem> toolbarVec;
    try {
      if (dockPanel != null) {
        toolbarVec = ToolBar.parseToolbarString(dockPanel.getToolbarString());
      } else {
        toolbarVec =
            ToolBar.parseToolbarString(((GuiManagerD) app.getGuiManager()).getToolbarDefinition());
      }
    } catch (Exception e) {
      if (dockPanel != null) {
        App.debug("invalid toolbar string: " + dockPanel.getToolbarString());
      } else {
        App.debug(
            "invalid toolbar string: "
                + ((GuiManagerD) app.getGuiManager()).getToolbarDefinition());
      }
      toolbarVec = ToolBar.parseToolbarString(getDefaultToolbarString());
    }

    // set toolbar
    boolean firstButton = true;

    // make the loop go backwards for eg Hebrew / Arabic
    int first = app.isRightToLeftReadingOrder() ? toolbarVec.size() - 1 : 0;
    int increment = app.isRightToLeftReadingOrder() ? -1 : 1;

    // for (int i = 0; i < toolbarVec.size(); i++) {
    for (int i = first; i >= 0 && i < toolbarVec.size(); i += increment) {
      ToolbarItem ob = toolbarVec.get(i);

      // separator between menus
      if (ob.getMode() == ToolBar.SEPARATOR) {
        addSeparator();
        continue;
      }

      // new menu
      Vector<Integer> menu = ob.getMenu();
      ModeToggleMenu tm = new ModeToggleMenu(app, this, bg);
      modeToggleMenus.add(tm);

      for (int k = 0; k < menu.size(); k++) {
        // separator
        int addMode = menu.get(k).intValue();
        if (addMode < 0) {
          // separator within menu:
          tm.addSeparator();
        } else { // standard case: add mode

          // check mode
          if (!"".equals(app.getToolName(addMode))) {
            tm.addMode(addMode);
            if (i == 0 && firstButton) {
              tm.getJToggleButton().setSelected(true);
              firstButton = false;
            }
          }
        }
      }

      if (tm.getToolsCount() > 0) add(tm);
    }
  }