@Override
  public void elementTriggered(Element element) {
    if (element.id == 0) {
      if (((GuiWorkspace) workspace).hasOpenProject()) {
        ((GuiWorkspace) workspace).getOpenProject().ghostModel = null;
        for (int i = 0; i < modelList.trees.size(); i++) {
          ElementListTree.Tree tree = modelList.trees.get(i);
          tree.selected = false;
        }
      }
    }
    if ((element.id == 1 || element.id == 3)) {
      for (int i = 0; i < modelList.trees.size(); i++) {
        ElementListTree.Tree tree = modelList.trees.get(i);
        if (tree.selected) {
          if (workspace.windowDragged == this) {
            workspace.windowDragged = null;
          }
          ProjectInfo project = ImportList.createProjectFromFile((File) tree.attachedObject);
          if (project == null) {
            workspace.addWindowOnTop(
                new WindowPopup(workspace, 0, 0, 180, 80, 180, 80, "window.open.failed")
                    .putInMiddleOfScreen());
          } else {
            project.repair();

            if (((GuiWorkspace) workspace).hasOpenProject()) {
              if (((GuiWorkspace) workspace).getOpenProject().ghostModel != null) {
                ((GuiWorkspace) workspace).getOpenProject().ghostModel.destroy();
              }
              ((GuiWorkspace) workspace).getOpenProject().ghostModel = project;
              for (Element e : elements) {
                if (e instanceof ElementToggle) {
                  if (!((ElementToggle) e).toggledState) {
                    project.bufferedTexture = null;
                  }
                } else if (e instanceof ElementNumberInput) {
                  ArrayList<CubeInfo> cubes = project.getAllCubes();
                  for (CubeInfo cube : cubes) {
                    cube.opacity =
                        Double.parseDouble(((ElementNumberInput) e).textFields.get(0).getText());
                  }
                }
              }
            }
          }
          break;
        }
      }

      workspace.removeWindow(this, true);
    }
  }
  public WindowSetGhostModel(IWorkspace parent, int x, int y, int w, int h, int minW, int minH) {
    super(parent, x, y, w, h, minW, minH, "window.ghostModel.title", true);

    elements.add(
        new ElementButton(
            this, width - 140, height - 22, 60, 16, 1, false, 1, 1, "element.button.ok"));
    elements.add(
        new ElementButton(
            this, width - 70, height - 22, 60, 16, 0, false, 1, 1, "element.button.clear"));
    modelList =
        new ElementListTree(
            this,
            BORDER_SIZE + 1,
            BORDER_SIZE + 1 + 10,
            width - (BORDER_SIZE * 2 + 2),
            height - BORDER_SIZE - 22 - 16,
            3,
            false,
            false);
    elements.add(modelList);
    elements.add(
        new ElementToggle(
            this,
            10,
            height - 22,
            60,
            16,
            -1,
            false,
            0,
            1,
            "window.import.texture",
            "window.import.textureFull",
            true));
    elements.add(
        new ElementNumberInput(
            this, 75, height - 20, 40, 12, -1, "window.controls.opacity", 1, false, 0, 100, 20));

    ArrayList<File> files = new ArrayList<File>();

    File[] textures = ResourceHelper.getSaveDir().listFiles();

    for (File file : textures) {
      if (!file.isDirectory() && ImportList.isFileSupported(file)) {
        files.add(file);
      }
    }

    for (File file : files) {
      modelList.createTree(null, file, 26, 0, false, false);
    }
  }