public JPanel createComponent()

in j2me/src/main/java/com/intellij/j2meplugin/module/settings/midp/MIDPSettingsConfigurable.java [86:272]


  public JPanel createComponent() {
    ActionListener modifier = new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        myModified = true;
      }
    };
    DocumentAdapter textModifier = new DocumentAdapter() {
      @Override
      protected void textChanged(@NotNull DocumentEvent e) {
        myModified = true;
      }
    };

    DocumentAdapter defaultModifier = new DocumentAdapter() {
      @Override
      protected void textChanged(@NotNull DocumentEvent e) {
        mySettings.setDefaultModified(true);
      }
    };

    myMIDletNameLabel.setText(MIDPApplicationType.MIDLET_NAME + ":");
    myMIDletName.getDocument().addDocumentListener(textModifier);
    myMIDletName.getDocument().addDocumentListener(defaultModifier);

    myMIDletVersionLabel.setText(MIDPApplicationType.MIDLET_VERSION + ":");
    myMIDletVersion.getDocument().addDocumentListener(textModifier);
    myMIDletVersion.addFocusListener(new FocusListener() {
      @Override
      public void focusGained(FocusEvent e) {
        myMIDletVersion.selectAll();
      }

      @Override
      public void focusLost(FocusEvent e) {
      }
    });

    myMIDletVendorLabel.setText(MIDPApplicationType.MIDLET_VENDOR + ":");
    myMIDletVendor.getDocument().addDocumentListener(textModifier);
    myMIDletVendor.addFocusListener(new FocusListener() {
      @Override
      public void focusGained(FocusEvent e) {
        myMIDletVendor.selectAll();
      }

      @Override
      public void focusLost(FocusEvent e) {
      }
    });


    myMIDletJarUrlLabel.setText(MIDPApplicationType.MIDLET_JAR_URL + ":");
    myMIDletJarUrl.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        FileChooserDescriptor fileChooserDescriptor = FileChooserDescriptorFactory.createSingleLocalFileDescriptor();
        fileChooserDescriptor.setTitle(J2MEBundle.message("build.settings.jar.utl.title"));
        fileChooserDescriptor.setDescription(J2MEBundle.message("build.settings.jar.url"));
        String directoryName = myMIDletJarUrl.getText().trim();
        VirtualFile initialFile = LocalFileSystem.getInstance().findFileByPath(directoryName.replace(File.separatorChar, '/'));
        VirtualFile file = FileChooser.chooseFile(fileChooserDescriptor, myProject, initialFile);
        if (file != null) {
          myMIDletJarUrl.setText(FileUtil.toSystemIndependentName(file.getPresentableUrl()));
        }
      }
    });
    myMIDletJarUrl.addActionListener(modifier);
    myMIDletJarUrl.getTextField().getDocument().addDocumentListener(textModifier);
    myMIDletJarUrl.getTextField().getDocument().addDocumentListener(defaultModifier);

    myMoveUpButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        if (myMIDletList.getSelectedIndex() <= 0) return;
        moveMIDlet(-1);
        myModified = true;
      }
    });

    myMoveDownButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        if (myMIDletList.getSelectedValue() == null || myMIDletList.getSelectedIndex() >= myListModel.size() - 1) return;
        moveMIDlet(+1);
        myModified = true;
      }
    });


    myMIDletList.setModel(myListModel);
    myMIDletList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    myMIDletList.setCellRenderer(new DefaultListCellRenderer() {
      @Override
      public Component getListCellRendererComponent(JList jList, Object o, int i, boolean b, boolean b1) {
        super.getListCellRendererComponent(jList, o, i, b, b1);
        setText(((MIDPSettings.MIDletProperty)o).getName());
        return this;
      }
    });

    myRemoveButton.setEnabled(false);
    myEditButton.setEnabled(false);
    myMoveUpButton.setEnabled(false);
    myMoveDownButton.setEnabled(false);

    myMIDletList.addListSelectionListener(new ListSelectionListener() {
      @Override
      public void valueChanged(ListSelectionEvent e) {
        if (myMIDletList.getSelectedIndex() == -1) {
          myRemoveButton.setEnabled(false);
          myEditButton.setEnabled(false);
          myMoveUpButton.setEnabled(false);
          myMoveDownButton.setEnabled(false);
        }
        else {
          myEditButton.setEnabled(true);
          myRemoveButton.setEnabled(true);
          if (myMIDletList.getSelectedIndex() != 0) {
            myMoveUpButton.setEnabled(true);
          }
          else {
            myMoveUpButton.setEnabled(false);
          }
          if (myMIDletList.getSelectedIndex() != myListModel.getSize() - 1) {
            myMoveDownButton.setEnabled(true);
          }
          else {
            myMoveDownButton.setEnabled(false);
          }
        }
      }
    });

    myRemoveButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        if (myMIDletList.getSelectedValue() == null) return;
        MIDPSettings.MIDletProperty midlet = (MIDPSettings.MIDletProperty)myMIDletList.getSelectedValue();
        ArrayList<MIDPSettings.MIDletProperty> midlets = new ArrayList<>();
        for (int i = 0; i < myListModel.size(); i++) {
          final MIDPSettings.MIDletProperty property = (MIDPSettings.MIDletProperty)myListModel.get(i);
          if (!property.equals(midlet)){
            midlets.add(property);
          }
        }
        myListModel.clear();
        int midletCount = 1;
        for (MIDPSettings.MIDletProperty key : midlets) {
          final MIDPSettings.MIDletProperty property = new MIDPSettings.MIDletProperty(MIDPApplicationType.MIDLET_PREFIX + midletCount,
                                                                                       key.getValueString());
          myListModel.addElement(property);
          midletCount++;
        }
        myModified = true;
      }
    });

    myAddButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        new MIDletOptionsPanel(myWholePanel,
                               new MIDPSettings.MIDletProperty("", "", "",
                                                               MIDPApplicationType.MIDLET_PREFIX + (myListModel.size() + 1)),
                               false).show();
      }
    });

    myEditButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        if (myMIDletList.getSelectedValue() == null) return;
        new MIDletOptionsPanel(myWholePanel,
                               (MIDPSettings.MIDletProperty)myMIDletList.getSelectedValue(),
                               true).show();
      }
    });

    myOptionalSettingsButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        new AdditionalOptionsPanel(myWholePanel).show();
      }
    });
    myOptionalSettingsButton.setVisible(myModule != null);
    return myWholePanel;
  }