Exemplo n.º 1
0
  public CustomizerSources(J2SEProjectProperties uiProperties) {
    this.uiProperties = uiProperties;
    initComponents();
    jScrollPane1.getViewport().setBackground(sourceRoots.getBackground());
    jScrollPane2.getViewport().setBackground(testRoots.getBackground());

    sourceRoots.setModel(uiProperties.SOURCE_ROOTS_MODEL);
    testRoots.setModel(uiProperties.TEST_ROOTS_MODEL);
    sourceRoots.getTableHeader().setReorderingAllowed(false);
    testRoots.getTableHeader().setReorderingAllowed(false);

    FileObject projectFolder = uiProperties.getProject().getProjectDirectory();
    File pf = FileUtil.toFile(projectFolder);
    this.projectLocation.setText(pf == null ? "" : pf.getPath()); // NOI18N

    SourceRootsUi.EditMediator emSR =
        SourceRootsUi.registerEditMediator(
            uiProperties.getProject(),
            uiProperties.getProject().getSourceRoots(),
            sourceRoots,
            addSourceRoot,
            removeSourceRoot,
            upSourceRoot,
            downSourceRoot,
            new LabelCellEditor(sourceRoots, testRoots),
            true);

    SourceRootsUi.EditMediator emTSR =
        SourceRootsUi.registerEditMediator(
            uiProperties.getProject(),
            uiProperties.getProject().getTestSourceRoots(),
            testRoots,
            addTestRoot,
            removeTestRoot,
            upTestRoot,
            downTestRoot,
            new LabelCellEditor(sourceRoots, testRoots),
            true);

    emSR.setRelatedEditMediator(emTSR);
    emTSR.setRelatedEditMediator(emSR);
    this.sourceLevel.setEditable(false);
    this.sourceLevel.setModel(uiProperties.JAVAC_SOURCE_MODEL);
    this.sourceLevel.setRenderer(uiProperties.JAVAC_SOURCE_RENDERER);
    uiProperties.JAVAC_SOURCE_MODEL.addListDataListener(
        new ListDataListener() {
          public void intervalAdded(ListDataEvent e) {
            enableSourceLevel();
          }

          public void intervalRemoved(ListDataEvent e) {
            enableSourceLevel();
          }

          public void contentsChanged(ListDataEvent e) {
            enableSourceLevel();
          }
        });
    enableSourceLevel();
    this.originalEncoding =
        this.uiProperties
            .getProject()
            .evaluator()
            .getProperty(J2SEProjectProperties.SOURCE_ENCODING);
    if (this.originalEncoding == null) {
      this.originalEncoding = Charset.defaultCharset().name();
    }

    this.encoding.setModel(ProjectCustomizer.encodingModel(originalEncoding));
    this.encoding.setRenderer(ProjectCustomizer.encodingRenderer());
    final String lafid = UIManager.getLookAndFeel().getID();
    if (!"Aqua".equals(lafid)) { // NOI18N
      this.encoding.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); // NOI18N
      this.encoding.addItemListener(
          new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent e) {
              javax.swing.JComboBox combo = (javax.swing.JComboBox) e.getSource();
              combo.setPopupVisible(false);
            }
          });
    }
    this.encoding.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
            handleEncodingChange();
          }
        });
    initTableVisualProperties(sourceRoots);
    initTableVisualProperties(testRoots);
    uiProperties.addOptionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            CellEditor cellEditor = sourceRoots.getCellEditor();
            if (cellEditor != null) {
              cellEditor.stopCellEditing();
            }
            cellEditor = testRoots.getCellEditor();
            if (cellEditor != null) {
              cellEditor.stopCellEditing();
            }
          }
        });
  }