Exemplo n.º 1
0
  /** Called if the user changes the selected items. */
  public void updateSelection() {
    int layer = getSelectedLayer();

    /* layer values:
     *  -1 means nothing selected
     *  -2 means different layers selected
     */

    boolean justCreated =
        !(app.getActiveEuclidianView().getEuclidianController().getJustCreatedGeos().isEmpty());

    copyAction.setEnabled(!app.getSelectedGeos().isEmpty());
    pasteAction.setEnabled(!CopyPaste.isEmpty());

    deleteAction.setEnabled(layer != -1 || justCreated);
    deleteItem.setVisible(layer != -1 || justCreated);
    deleteSeparator.setVisible(layer != -1 || justCreated);

    showhideAction.setEnabled(layer != -1);
    showhideItem.setVisible(layer != -1);

    showhideLabelsAction.setEnabled(layer != -1);
    showhideLabelsItem.setVisible(layer != -1);

    // exactly one layer selected
    selectCurrentLayerAction.setEnabled(getSelectedLayer() >= 0);
    selectCurrentLayerItem.setVisible(getSelectedLayer() >= 0);

    boolean haveSelection = !app.getSelectedGeos().isEmpty();
    invertAction.setEnabled(haveSelection);
    invertItem.setVisible(haveSelection);
    selectAllDescendantsAction.setEnabled(haveSelection);
    selectAllDescendantsItem.setVisible(haveSelection);
    selectAllAncestorsAction.setEnabled(haveSelection);
    selectAllAncestorsItem.setVisible(haveSelection);
    selectionSeparator.setVisible(haveSelection);

    Kernel kernel = app.getKernel();
    propertiesAction.setEnabled(!kernel.isEmpty());
    selectAllAction.setEnabled(!kernel.isEmpty());
  }