/**
   * Opens object editor GUI.
   *
   * @param obj the object to edit
   */
  public void openObjEditor(EnvObjectLogic obj) {
    if (objEditorPanels.containsKey(obj)) {
      if (objEditorPanels.get(obj) == null) {
        objEditorPanels.remove(obj);
        objEditorPanels.put(obj, createNewObjectEditor(obj));
      }
    } else {
      objEditorPanels.put(obj, createNewObjectEditor(obj));
    }

    final ObjectEditor currEditorPanel = objEditorPanels.get(obj);
    currEditorPanel.setVisible(true);
    currEditorPanel.toFront();
  }
 public void setVisible(boolean visible) {
   super.setVisible(visible);
   button.setVisible(visible);
   GridData data = (GridData) button.getLayoutData();
   data.exclude = !visible;
 }