public LayerDesignPanel(MainFrame father) { this.father = father; this.setLayout(null); jsp.setBounds(10, 10, 800, 600); this.add(jsp); jspL.setBounds(820, 10, 140, 200); this.add(jspL); jl.setCellRenderer(new MyCellRenderer()); jbSaveLayer.setBounds(820, 220, 140, 20); this.add(jbSaveLayer); jbSaveLayer.addActionListener(this); jbLoadLayer.setBounds(820, 250, 140, 20); this.add(jbLoadLayer); jbLoadLayer.addActionListener(this); jbCreate.setBounds(820, 280, 140, 20); this.add(jbCreate); jbCreate.addActionListener(this); jbLoadAll.setBounds(820, 310, 140, 20); this.add(jbLoadAll); jbLoadAll.addActionListener(this); jtfCengMing.setBounds(820, 340, 140, 20); this.add(jtfCengMing); }
public FeedbackViewerUI( DefaultListModel<AbstractFeedbackType> questionListModel, DefaultListModel<FeedbackViewerUserEntry> userListModel) { super(); setTitle("Feedback Viewer"); setIconImage(Loader.getImageIcon(Loader.IMAGE_STURESY).getImage()); // Button Panel containing download/upload/etc. buttons JPanel buttonPanel = createButtonPanel(); JPanel leftPanel = new JPanel(); leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS)); questionList = new JList<>(questionListModel); questionList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); questionList.setCellRenderer(new NumberedListCellRenderer()); userList = new JList<>(userListModel); userList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane questionListScrollPane = new JScrollPane(questionList); JScrollPane userListScrollPane = new JScrollPane(userList); // Populate left panel of SplitPane leftPanel.add(new JLabel("Select by Question:")); leftPanel.add(questionListScrollPane); leftPanel.add(new JLabel("Select by User:")); leftPanel.add(userListScrollPane); splitPane = new JSplitPane(); splitPane.setLeftComponent(leftPanel); add(splitPane, BorderLayout.CENTER); add(buttonPanel, BorderLayout.PAGE_END); setRightPanel(new JPanel()); }
/** Initializes the config list. */ private void initList() { configList.setModel(new DefaultListModel()); configList.setCellRenderer(new ConfigListCellRenderer()); configList.addListSelectionListener(this); configList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane configScrollList = new JScrollPane(); configScrollList.getVerticalScrollBar().setUnitIncrement(30); configScrollList.getViewport().add(configList); add(configScrollList, BorderLayout.WEST); String osgiFilter = "(" + ConfigurationForm.FORM_TYPE + "=" + ConfigurationForm.ADVANCED_TYPE + ")"; ServiceReference[] confFormsRefs = null; try { confFormsRefs = AdvancedConfigActivator.bundleContext.getServiceReferences( ConfigurationForm.class.getName(), osgiFilter); } catch (InvalidSyntaxException ex) { } if (confFormsRefs != null) { for (int i = 0; i < confFormsRefs.length; i++) { ConfigurationForm form = (ConfigurationForm) AdvancedConfigActivator.bundleContext.getService(confFormsRefs[i]); if (form.isAdvanced()) this.addConfigForm(form); } } }
public NodeSelectionDialog(Frame owner, NodeLibrary library, NodeLibraryManager manager) { super(owner, "New Node", true); getRootPane().putClientProperty("Window.style", "small"); JPanel panel = new JPanel(new BorderLayout()); this.library = library; this.manager = manager; filteredNodeListModel = new FilteredNodeListModel(library, manager); searchField = new JTextField(); searchField.putClientProperty("JTextField.variant", "search"); EscapeListener escapeListener = new EscapeListener(); searchField.addKeyListener(escapeListener); ArrowKeysListener arrowKeysListener = new ArrowKeysListener(); searchField.addKeyListener(arrowKeysListener); SearchFieldChangeListener searchFieldChangeListener = new SearchFieldChangeListener(); searchField.getDocument().addDocumentListener(searchFieldChangeListener); nodeList = new JList(filteredNodeListModel); DoubleClickListener doubleClickListener = new DoubleClickListener(); nodeList.addMouseListener(doubleClickListener); nodeList.addKeyListener(escapeListener); nodeList.addKeyListener(arrowKeysListener); nodeList.setSelectedIndex(0); nodeList.setCellRenderer(new NodeRenderer()); JScrollPane nodeScroll = new JScrollPane( nodeList, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); nodeScroll.setBorder(null); panel.add(searchField, BorderLayout.NORTH); panel.add(nodeScroll, BorderLayout.CENTER); setContentPane(panel); setSize(500, 400); SwingUtils.centerOnScreen(this); }
@Override protected JComponent createCenterPanel() { final JPanel panel = new JPanel(new BorderLayout()); JTextArea area = new JTextArea( "The imported language extends other languages.\n" + "It might be useful to import all or some of them."); area.setEditable(false); area.setBackground(this.getContentPane().getBackground()); area.setBorder(BorderFactory.createEmptyBorder(5, 5, 3, 5)); panel.add(area, BorderLayout.NORTH); JPanel center = new JPanel(new GridBagLayout()); JTextArea label = new JTextArea("Select additional languages to import:"); label.setEditable(false); label.setBackground(getContentPane().getBackground()); label.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); center.add( label, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); myList = new JBList(myCandidates.toArray()); myList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); myList.setSelectionInterval(0, myList.getModel().getSize() - 1); myList.setCellRenderer(new MyDefaultListCellRenderer()); myList.setBorder(BorderFactory.createEtchedBorder()); center.add( ScrollPaneFactory.createScrollPane(myList), new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); panel.add(center, BorderLayout.CENTER); panel.setPreferredSize(new Dimension(400, 250)); return panel; }
public ErrorListDialog( Frame frame, String title, String caption, Vector messages, boolean showPluginMgrButton) { super(frame, title, true); JPanel content = new JPanel(new BorderLayout(12, 12)); content.setBorder(new EmptyBorder(12, 12, 12, 12)); setContentPane(content); Box iconBox = new Box(BoxLayout.Y_AXIS); iconBox.add(new JLabel(UIManager.getIcon("OptionPane.errorIcon"))); iconBox.add(Box.createGlue()); content.add(BorderLayout.WEST, iconBox); JPanel centerPanel = new JPanel(new BorderLayout()); JLabel label = new JLabel(caption); label.setBorder(new EmptyBorder(0, 0, 6, 0)); centerPanel.add(BorderLayout.NORTH, label); JList errors = new JList(messages); errors.setCellRenderer(new ErrorListCellRenderer()); errors.setVisibleRowCount(Math.min(messages.size(), 4)); JScrollPane scrollPane = new JScrollPane( errors, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); Dimension size = scrollPane.getPreferredSize(); size.width = Math.min(size.width, 400); scrollPane.setPreferredSize(size); centerPanel.add(BorderLayout.CENTER, scrollPane); content.add(BorderLayout.CENTER, centerPanel); Box buttons = new Box(BoxLayout.X_AXIS); buttons.add(Box.createGlue()); ok = new JButton(jEdit.getProperty("common.ok")); ok.addActionListener(new ActionHandler()); if (showPluginMgrButton) { pluginMgr = new JButton(jEdit.getProperty("error-list.plugin-manager")); pluginMgr.addActionListener(new ActionHandler()); buttons.add(pluginMgr); buttons.add(Box.createHorizontalStrut(6)); } buttons.add(ok); buttons.add(Box.createGlue()); content.add(BorderLayout.SOUTH, buttons); getRootPane().setDefaultButton(ok); pack(); setLocationRelativeTo(frame); show(); }
/** Creates a JList of files and sets and makes it non-selectable. */ private static JList<String> createFileList(List<String> fileNames) { JList<String> fileList = new JList<String>(fileNames.toArray(new String[0])); fileList.setVisibleRowCount(5); fileList.setCellRenderer(new FileNameListCellRenderer()); // fileList.setSelectionForeground(fileList.getForeground()); // fileList.setSelectionBackground(fileList.getBackground()); fileList.setFocusable(false); return fileList; }
/** Constructor. */ public TilePatternsView() { super(); tilePatternIcons = new ArrayList<TilePatternIcon>(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // tileset properties // the tile pattern list // view of the current tile pattern // tileset properties tilesetPropertiesView = new TilesetPropertiesView(); tilesetPropertiesView.setMaximumSize(new Dimension(Integer.MAX_VALUE, 120)); tilesetPropertiesView.setAlignmentX(Component.LEFT_ALIGNMENT); // list tilePatternsListModel = new TilePatternsListModel(); tilePatternsList = new JList(tilePatternsListModel); tilePatternsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); tilePatternsList.setLayoutOrientation(JList.HORIZONTAL_WRAP); tilePatternsList.setVisibleRowCount(-1); // make the rows as wide as possible tilePatternsList .getSelectionModel() .addListSelectionListener(new TilePatternListSelectionListener()); tilePatternsList.setCellRenderer(new TilePatternListRenderer()); tilePatternsList.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent keyEvent) { if (keyEvent.getKeyCode() == KeyEvent.VK_DELETE) { if (tileset != null && tileset.getSelectedTilePattern() != null) { tileset.removeTilePattern(); } } } }); JScrollPane listScroller = new JScrollPane(tilePatternsList); listScroller.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); listScroller.setAlignmentX(Component.LEFT_ALIGNMENT); // tile view tilePatternView = new TilePatternView(); tilePatternView.setMaximumSize(new Dimension(Integer.MAX_VALUE, 300)); tilePatternView.setAlignmentX(Component.LEFT_ALIGNMENT); add(tilesetPropertiesView); add(Box.createRigidArea(new Dimension(0, 5))); add(listScroller); add(Box.createRigidArea(new Dimension(0, 5))); add(tilePatternView); }
public void setDefaults() throws IOException { herolabsXMLChooser = new JFileChooser(prefs.get(HEROLABS_XML_DIR, "")); importButton.setEnabled(true); configurePortfolioButton.setEnabled(true); exportAllButton.setEnabled(false); exportSelectedButton.setEnabled(false); setXMLChooserFileFilter(herolabsXMLChooser); IconListRenderer listRenderer = new IconListRenderer(config, this); herolabsCharacterList.setCellRenderer(listRenderer); }
protected JScrollPane createDirectoryList() { directoryList = new JList(); align(directoryList); directoryList.setCellRenderer(new DirectoryCellRenderer()); directoryList.setModel(new MotifDirectoryListModel()); directoryList.addMouseListener(createDoubleClickListener(getFileChooser(), directoryList)); directoryList.addListSelectionListener(createListSelectionListener(getFileChooser())); JScrollPane scrollpane = new JScrollPane(directoryList); scrollpane.setMaximumSize(MAX_SIZE); scrollpane.setPreferredSize(prefListSize); align(scrollpane); return scrollpane; }
@NotNull public static <T extends PsiElement> JBPopup getPsiElementPopup( @NotNull T[] elements, @NotNull final PsiElementListCellRenderer<T> renderer, @Nullable final String title, @NotNull final PsiElementProcessor<T> processor, @Nullable final T selection) { final JList list = new JBListWithHintProvider(elements) { @Nullable @Override protected PsiElement getPsiElementForHint(Object selectedValue) { return (PsiElement) selectedValue; } }; list.setCellRenderer(renderer); list.setFont(EditorUtil.getEditorFont()); if (selection != null) { list.setSelectedValue(selection, true); } final Runnable runnable = () -> { int[] ids = list.getSelectedIndices(); if (ids == null || ids.length == 0) return; for (Object element : list.getSelectedValues()) { if (element != null) { processor.execute((T) element); } } }; PopupChooserBuilder builder = new PopupChooserBuilder(list); if (title != null) { builder.setTitle(title); } renderer.installSpeedSearch(builder, true); JBPopup popup = builder.setItemChoosenCallback(runnable).createPopup(); builder.getScrollPane().setBorder(null); builder.getScrollPane().setViewportBorder(null); return popup; }
private static void chooseAndPerform( Editor editor, List<TestFramework> frameworks, final Consumer<TestFramework> consumer) { if (frameworks.size() == 1) { consumer.consume(frameworks.get(0)); return; } final JList list = new JBList(frameworks.toArray(new TestFramework[frameworks.size()])); list.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { Component result = super.getListCellRendererComponent(list, "", index, isSelected, cellHasFocus); if (value == null) return result; TestFramework framework = (TestFramework) value; setIcon(framework.getIcon()); setText(framework.getName()); return result; } }); PopupChooserBuilder builder = new PopupChooserBuilder(list); builder.setFilteringEnabled( new Function<Object, String>() { @Override public String fun(Object o) { return ((TestFramework) o).getName(); } }); builder .setTitle("Choose Framework") .setItemChoosenCallback( new Runnable() { @Override public void run() { consumer.consume((TestFramework) list.getSelectedValue()); } }) .setMovable(true) .createPopup() .showInBestPositionFor(editor); }
public ClientsPanel() { super(new BorderLayout()); lstClients = new JList(); lstClients.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); lstClients.setCellRenderer( new DefaultListCellRenderer() { public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { EditorClient c = (EditorClient) value; JLabel label = new JLabel(c.getName()); if (c.isPresent()) label.setForeground(MyColors.getMainColor(c.getColorCode())); else label.setForeground(Color.GRAY); if (isSelected) label.setBackground(lstClients.getSelectionBackground()); return label; } }); lstClients.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (EditorServer_Debug) System.out.println(" mouseClicked "); int ndx = lstClients.locationToIndex(new Point(e.getX(), e.getY())); if (ndx > -1 && ndx < lstClients.getModel().getSize()) lstClients.setSelectedIndex(ndx); else { if (EditorServer_Debug) System.out.println(" invalid mouse click on the JList"); } } }); lstClients.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { EditorClient c = (EditorClient) lstClients.getSelectedValue(); currClient = c; updateActionTableFor(currClient); } }); tblActions = new JTable(getClearTableModel()); add(new JScrollPane(lstClients), BorderLayout.WEST); add(new JScrollPane(tblActions), BorderLayout.CENTER); }
private Component createListPanel() { model = new DefaultListModel(); list = new JList(model); list.setCellRenderer(new FilterRenderer()); list.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { enableAppropriately(); } } }); return new JScrollPane(list); }
private void selectSourceAndDo() { // GUI part ImportCandidateHolder[] items = mySources.toArray( new ImportCandidateHolder [mySources.size()]); // silly JList can't handle modern collections final JList list = new JBList(items); list.setCellRenderer(new CellRenderer(myName)); final Runnable runnable = new Runnable() { public void run() { final Object selected = list.getSelectedValue(); if (selected instanceof ImportCandidateHolder) { final ImportCandidateHolder item = (ImportCandidateHolder) selected; PsiDocumentManager.getInstance(myTarget.getProject()).commitAllDocuments(); doWriteAction(item); } } }; DataManager.getInstance() .getDataContextFromFocus() .doWhenDone( new Consumer<DataContext>() { @Override public void consume(DataContext dataContext) { new PopupChooserBuilder(list) .setTitle( myUseQualifiedImport ? PyBundle.message("ACT.qualify.with.module") : PyBundle.message("ACT.from.some.module.import")) .setItemChoosenCallback(runnable) .setFilteringEnabled( new Function<Object, String>() { @Override public String fun(Object o) { return ((ImportCandidateHolder) o).getPresentableText(myName); } }) .createPopup() .showInBestPositionFor(dataContext); } }); }
private JList courseList() { JList result = new JList((ListModel) _plan.getSemester(_year, _semester)); result.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); result.setCellRenderer(_planViewCellRenderer); result.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (_courseList.getSelectedIndex() > -1) { _planViewPanel.courseSelected( (Course) _courseList.getModel().getElementAt(_courseList.getSelectedIndex()), _year, _semester); // _planViewPanel.setSelectedSemester(_year, _semester); } } }); return result; }
@Nullable @Override protected JComponent createCenterPanel() { mySdkList = new JBList(); //noinspection unchecked mySdkList.setCellRenderer(new PySdkListCellRenderer("", myModificators)); mySdkList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ToolbarDecorator decorator = ToolbarDecorator.createDecorator(mySdkList) .disableUpDownActions() .setAddAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { addSdk(button); updateOkButton(); } }) .setEditAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { editSdk(); updateOkButton(); } }) .setRemoveAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { removeSdk(); updateOkButton(); } }) .addExtraAction(new ToggleVirtualEnvFilterButton()) .addExtraAction(new ShowPathButton()); decorator.setPreferredSize(new Dimension(600, 500)); myMainPanel = decorator.createPanel(); refreshSdkList(); addListeners(); return myMainPanel; }
private MainPanel() { super(new BorderLayout()); DefaultListModel<String> model = new DefaultListModel<>(); model.addElement("11\n1"); model.addElement("222222222222222\n222222222222222"); model.addElement("3333333333333333333\n33333333333333333333\n33333333333333333"); model.addElement("444"); JList<String> list = new JList<>(model); list.setFixedCellHeight(-1); CellButtonsMouseListener cbml = new CellButtonsMouseListener(list); list.addMouseListener(cbml); list.addMouseMotionListener(cbml); list.setCellRenderer(new ButtonsRenderer<String>(model)); add(new JScrollPane(list)); setPreferredSize(new Dimension(320, 240)); }
protected JScrollPane createFilesList() { fileList = new JList(); if (getFileChooser().isMultiSelectionEnabled()) { fileList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); } else { fileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } fileList.setModel(new MotifFileListModel()); fileList.setCellRenderer(new FileCellRenderer()); fileList.addListSelectionListener(createListSelectionListener(getFileChooser())); fileList.addMouseListener(createDoubleClickListener(getFileChooser(), fileList)); align(fileList); JScrollPane scrollpane = new JScrollPane(fileList); scrollpane.setPreferredSize(prefListSize); scrollpane.setMaximumSize(MAX_SIZE); align(scrollpane); return scrollpane; }
protected JComponent createCenterPanel() { myList.setCellRenderer(new CvsListCellRenderer()); myCenterPanelLayout.setHgap(6); myCenterPanel.add(createActionsPanel(), BorderLayout.NORTH); JComponent listPanel = createListPanel(); myCenterPanel.add(listPanel, BorderLayout.CENTER); myCenterPanel.add(createCvsConfigurationPanel(), BorderLayout.EAST); myCenterPanel.add(new JSeparator(JSeparator.HORIZONTAL), BorderLayout.SOUTH); myList.setModel(myModel); addSelectionListener(); int minWidth = myList.getFontMetrics(myList.getFont()).stringWidth(SAMPLE_CVSROOT) + 40; Dimension minSize = new Dimension(minWidth, myList.getMaximumSize().height); listPanel.setMinimumSize(minSize); listPanel.setPreferredSize(minSize); return myCenterPanel; }
public StackTraceTool(Environment env) { super(new BorderLayout()); this.env = env; this.runtime = env.getExecutionManager(); this.context = env.getContextManager(); stackModel = new DefaultListModel(); // empty list = new JList(stackModel); list.setCellRenderer(new StackFrameRenderer()); JScrollPane listView = new JScrollPane(list); add(listView); // Create listener. StackTraceToolListener listener = new StackTraceToolListener(); context.addContextListener(listener); list.addListSelectionListener(listener); // ### remove listeners on exit! }
public void setDestinationCellRenderer(ListCellRenderer newValue) { destList.setCellRenderer(newValue); }
public void setSourceCellRenderer(ListCellRenderer newValue) { sourceList.setCellRenderer(newValue); }
public static void navigate(final Project project, final FileUsageList usagesList) { if (usagesList == null) { WindowManager.getInstance().getStatusBar(project).setInfo("No navigation resolved"); } else { if (usagesList.files.size() == 1 && usagesList.files.get(0).usageList.size() == 1) { final FileUsage fileUsage = usagesList.files.get(0); final OurUsage ourUsage = fileUsage.usageList.get(0); doNavigate(fileUsage, ourUsage, project); } else { final List<OurUsage> ourUsages = new ArrayList<OurUsage>(5); for (FileUsage fileUsage : usagesList.files) { for (OurUsage usage : fileUsage.usageList) { ourUsages.add(usage); } } final JList list = new JList( new AbstractListModel() { public int getSize() { return ourUsages.size(); } public Object getElementAt(int index) { return ourUsages.get(index); } }); list.setCellRenderer( new DefaultListCellRenderer() { public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { final OurUsage usage = ((OurUsage) value); String text = usage.getContextText() + " in " + usage.fileUsage.getFileLocaton(); return super.getListCellRendererComponent( list, text, index, isSelected, cellHasFocus); } }); DataContext dataContext = DataManager.getInstance().getDataContext(); PopupChooserBuilder builder = JBPopupFactory.getInstance().createListPopupBuilder(list); builder .setTitle("Select Target") .setItemChoosenCallback( new Runnable() { public void run() { int selectedIndex = list.getSelectedIndex(); if (selectedIndex == -1) return; final OurUsage selectedUsage = (OurUsage) list.getSelectedValue(); for (FileUsage fileUsage : usagesList.files) { for (OurUsage usage : fileUsage.usageList) { if (selectedUsage == usage) { doNavigate(fileUsage, usage, project); break; } } } } }) .createPopup() .showInBestPositionFor(dataContext); } } }
public SaveDialog(Frame parent) { super(parent, true); this.setLayout(new BorderLayout()); // gather unsaved tab Set<Tab> unsaved = new LinkedHashSet<>(); for (Tab tab : MainPanel.getAllTab()) { if (!tab.isSaved()) { unsaved.add(tab); } } if (unsaved.isEmpty()) { // close directly this.setTitle("Confirm close"); // upper labels JPanel labels = new JPanel(new FlowLayout(FlowLayout.LEFT, 11, 7)); labels.add(iconLabel); labels.add(new MyLabel(" Do you really want to close RefluxEdit?")); // buttons JPanel buttons = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 7)); buttons.add( new MyButton("YES") { { SaveDialog.this.getRootPane().setDefaultButton(this); this.setFocusPainted(true); } @Override public void actionPerformed(ActionEvent ev) { close = true; SaveDialog.this.setVisible(false); } }); buttons.add( new MyButton("NO") { { this.setFocusPainted(true); } @Override public void actionPerformed(ActionEvent ev) { close = false; SaveDialog.this.setVisible(false); } }); buttons.setBorder(new EmptyBorder(0, 0, 5, 0)); // this.add(labels, BorderLayout.CENTER); this.add(buttons, BorderLayout.PAGE_END); } else { // ask save changes this.setTitle("Unsaved changes"); // upper components: icon and list JPanel upper = new JPanel(new GridBagLayout()); JPanel listPane = new JPanel(new BorderLayout()); final DefaultListModel<Tab> listModel = new DefaultListModel<>(); final JList<Tab> tabList = new JList<>(listModel); tabList.setFont(f13); tabList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); tabList.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JLabel label = (JLabel) (super.getListCellRendererComponent( list, value, index, isSelected, cellHasFocus)); if (value instanceof Tab) { String text = ((Tab) value).getTabLabel().getText(); label.setText(text.substring(1)); // remove "*" } return label; } }); for (Tab tab : unsaved) { listModel.addElement(tab); } tabList.getSelectionModel().setSelectionInterval(0, listModel.size() - 1); JScrollPane scrollPane = new JScrollPane(tabList); scrollPane.setPreferredSize(new Dimension(350, 170)); listPane.add(new MyLabel("The following tabs are unsaved:"), BorderLayout.PAGE_START); listPane.add(scrollPane, BorderLayout.CENTER); // setup upper GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.weightx = 0; c.weighty = 1; c.insets = new Insets(5, 5, 5, 5); c.anchor = GridBagConstraints.FIRST_LINE_START; upper.add(iconLabel, c); // c.gridx = 1; c.weightx = 1; c.fill = GridBagConstraints.BOTH; upper.add(listPane, c); // lower components: buttons JPanel buttons = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 7)); buttons.add( new MyButton("Save") { { this.setFocusPainted(true); this.setToolTipText("Save selected tab(s)"); SaveDialog.this.getRootPane().setDefaultButton(this); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { for (Tab tab : tabList.getSelectedValuesList()) { if (tab.getFile() != null) { try { tab.save(); MainPanel.close(tab); listModel.removeElement(tab); } catch (Exception ex) { exception(ex); break; } } else { File file = FileChooser.showPreferredFileDialog( RefluxEdit.getInstance(), FileChooser.SAVE, new String[0]); if (file != null) { try { tab.save(file, false); MainPanel.close(tab); listModel.removeElement(tab); } catch (Exception ex) { exception(ex); break; } } } } if (listModel.size() == 0) { RefluxEdit.getInstance().close(); } } }); buttons.add( new MyButton("Discard") { { this.setFocusPainted(true); this.setToolTipText("Discard selected tab(s)"); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { for (Tab tab : tabList.getSelectedValuesList()) { MainPanel.close(tab); listModel.removeElement(tab); } if (listModel.size() == 0) { RefluxEdit.getInstance().close(); } } }); buttons.add( new MyButton("Close") { { this.setFocusPainted(true); this.setToolTipText("Close RefluxEdit"); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { SaveDialog.this.close = true; SaveDialog.this.setVisible(false); } }); buttons.add( new MyButton("Cancel") { { this.setFocusPainted(true); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { SaveDialog.this.close = false; SaveDialog.this.setVisible(false); } }); this.add(upper, BorderLayout.CENTER); this.add(buttons, BorderLayout.PAGE_END); } }
public ModuleTypeStep(boolean createNewProject) { myPanel = new JPanel(new GridBagLayout()); myPanel.setBorder(BorderFactory.createEtchedBorder()); myModuleDescriptionPane = new JEditorPane(); myModuleDescriptionPane.setContentType(UIUtil.HTML_MIME); myModuleDescriptionPane.addHyperlinkListener( new HyperlinkListener() { public void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { try { BrowserUtil.launchBrowser(e.getURL().toString()); } catch (IllegalThreadStateException ex) { // it's nnot a problem } } } }); myModuleDescriptionPane.setEditable(false); final ModuleType[] allModuleTypes = ModuleTypeManager.getInstance().getRegisteredTypes(); myTypesList = new JList(allModuleTypes); myTypesList.setSelectionModel(new PermanentSingleSelectionModel()); myTypesList.setCellRenderer(new ModuleTypesListCellRenderer()); myTypesList.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) { return; } final ModuleType typeSelected = (ModuleType) myTypesList.getSelectedValue(); myModuleType = typeSelected; //noinspection HardCodedStringLiteral myModuleDescriptionPane.setText( "<html><body><font face=\"verdana\" size=\"-1\">" + typeSelected.getDescription() + "</font></body></html>"); myEventDispatcher.getMulticaster().moduleTypeSelected(typeSelected); } }); myTypesList.setSelectedIndex(0); myTypesList.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { if (myDoubleClickAction != null) { if (myTypesList.getSelectedValue() != null) { myDoubleClickAction.run(); } } } } }); myRbCreateNewModule = new JRadioButton(IdeBundle.message("radio.create.new.module"), true); myRbImportModule = new JRadioButton(IdeBundle.message("radio.import.existing.module")); myButtonGroup = new ButtonGroup(); myButtonGroup.add(myRbCreateNewModule); myButtonGroup.add(myRbImportModule); ModulesRbListener listener = new ModulesRbListener(); myRbCreateNewModule.addItemListener(listener); myRbImportModule.addItemListener(listener); JTextField tfModuleFilePath = new JTextField(); final String productName = ApplicationNamesInfo.getInstance().getProductName(); myModulePathFieldPanel = createFieldPanel( tfModuleFilePath, IdeBundle.message("label.path.to.module.file", productName), new BrowseFilesListener( tfModuleFilePath, IdeBundle.message("prompt.select.module.file.to.import", productName), null, new ModuleFileChooserDescriptor())); myModulePathFieldPanel.setEnabled(false); if (createNewProject) { final JLabel moduleTypeLabel = new JLabel(IdeBundle.message("label.select.module.type")); moduleTypeLabel.setFont(UIUtil.getLabelFont().deriveFont(Font.BOLD)); myPanel.add(moduleTypeLabel, LABEL_CONSTRAINT); } else { myPanel.add( myRbCreateNewModule, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(8, 10, 8, 10), 0, 0)); } final JLabel descriptionLabel = new JLabel(IdeBundle.message("label.description")); descriptionLabel.setFont(UIUtil.getLabelFont().deriveFont(Font.BOLD)); myPanel.add( descriptionLabel, new GridBagConstraints( 1, GridBagConstraints.RELATIVE, 1, 1, 0.0, 0.0, GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); final JScrollPane typesListScrollPane = ScrollPaneFactory.createScrollPane(myTypesList); final Dimension preferredSize = calcTypeListPreferredSize(allModuleTypes); typesListScrollPane.setPreferredSize(preferredSize); typesListScrollPane.setMinimumSize(preferredSize); myPanel.add( typesListScrollPane, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 1, 1, 0.2, (createNewProject ? 1.0 : 0.0), GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, createNewProject ? 10 : 30, 0, 10), 0, 0)); final JScrollPane descriptionScrollPane = ScrollPaneFactory.createScrollPane(myModuleDescriptionPane); descriptionScrollPane.setPreferredSize( new Dimension(preferredSize.width * 3, preferredSize.height)); myPanel.add( descriptionScrollPane, new GridBagConstraints( 1, GridBagConstraints.RELATIVE, 1, 1, 0.8, (createNewProject ? 1.0 : 0.0), GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 10), 0, 0)); if (!createNewProject) { myPanel.add( myRbImportModule, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 2, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(16, 10, 0, 10), 0, 0)); myPanel.add( myModulePathFieldPanel, new GridBagConstraints( 0, GridBagConstraints.RELATIVE, 2, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(8, 30, 0, 10), 0, 0)); } }
private Component createArrowSettingsPanel() { final ArrowStyle[] styles = DiagramSchema.getCurrentSchema().getArrowStyles(); final JList<ArrowStyle> listView = new JList<>(styles); listView.setCellRenderer( new ListCellRenderer<ArrowStyle>() { public Component getListCellRendererComponent( final JList list, final ArrowStyle style, final int index, final boolean isSelected, final boolean cellHasFocus) { JPanel retVal = new JPanel() { @Override protected void paintComponent(final Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; AffineTransform oldTransform = g2d.getTransform(); Paint oldPaint = g2d.getPaint(); Stroke oldStroke = g2d.getStroke(); Shape arrow = TransitionArrow.getArrowShape(style, getWidth() * 0.9); g2d.setPaint(style.getColor()); g2d.translate(getWidth() * 0.95, getHeight() / 2); g2d.fill(arrow); if (style.getBorderWidth() != 0) { g2d.setStroke(new BasicStroke(style.getBorderWidth())); g2d.setPaint(Color.BLACK); g2d.draw(arrow); } g2d.setPaint(oldPaint); g2d.setStroke(oldStroke); g2d.setTransform(oldTransform); } }; Dimension size = new Dimension(150, 30); retVal.setMinimumSize(size); retVal.setPreferredSize(size); if (sequenceValues.size() > index) { retVal.setToolTipText(sequenceValues.get(index).getDisplayString()); } else { retVal.setToolTipText("n/a"); } return retVal; } }); listView.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(final MouseEvent e) { if (e.getClickCount() != 2) { return; } int index = listView.getSelectedIndex(); ListModel listModel = listView.getModel(); ArrowStyle style = (ArrowStyle) listModel.getElementAt(index); ArrowStyle newStyle = ArrowStyleChooser.showDialog(listView, "Edit arrow style", style); if (newStyle != null) { style.copyValues(newStyle); DiagramSchema.getCurrentSchema().store(); diagramView.repaint(); } } }); MouseInputAdapter dragHandler = new MouseInputAdapter() { private boolean isDragging = false; private int dragStartIndex; @Override public void mousePressed(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e)) { dragStartIndex = listView.getSelectedIndex(); } } @Override public void mouseReleased(MouseEvent e) { isDragging = false; } @Override public void mouseDragged(MouseEvent e) { if (isDragging) { int currentIndex = listView.locationToIndex(e.getPoint()); if (currentIndex != dragStartIndex) { int dragTargetIndex = listView.getSelectedIndex(); ArrowStyle sourceStyle = styles[dragStartIndex]; styles[dragStartIndex] = styles[dragTargetIndex]; styles[dragTargetIndex] = sourceStyle; dragStartIndex = currentIndex; } } isDragging = true; } }; listView.addMouseListener(dragHandler); listView.addMouseMotionListener(dragHandler); return new JScrollPane(listView); }
/** * Show the saved results on the server. * * @param mysettings jemboss settings * @param frameName title name for frame */ public ShowSavedResults(final JembossParams mysettings, final JFrame f) { this("Saved results list" + (Jemboss.withSoap ? " on server" : "")); try { final ResultList reslist = new ResultList(mysettings); JMenu resFileMenu = new JMenu("File"); resMenu.add(resFileMenu); final JCheckBoxMenuItem listByProgram = new JCheckBoxMenuItem("List by program"); listByProgram.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { listByProgramName(); } }); resFileMenu.add(listByProgram); JCheckBoxMenuItem listByDate = new JCheckBoxMenuItem("List by date", true); listByDate.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { listByDateRun(reslist, false); } }); resFileMenu.add(listByDate); ButtonGroup group = new ButtonGroup(); group.add(listByProgram); group.add(listByDate); JButton refresh = new JButton(rfii); refresh.setMargin(new Insets(0, 1, 0, 1)); refresh.setToolTipText("Refresh"); resMenu.add(refresh); refresh.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { setCursor(cbusy); ResultList newlist = new ResultList(mysettings); setCursor(cdone); if (newlist.getStatus().equals("0")) { reslist.updateRes(newlist.hash()); datasets.removeAllElements(); StringTokenizer tok = new StringTokenizer((String) reslist.get("list"), "\n"); while (tok.hasMoreTokens()) datasets.addElement(convertToPretty(tok.nextToken())); if (listByProgram.isSelected()) listByProgramName(); else listByDateRun(reslist, false); } else { JOptionPane.showMessageDialog( null, newlist.getStatusMsg(), "Soap Error", JOptionPane.ERROR_MESSAGE); } } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } }); resFileMenu.addSeparator(); JMenuItem resFileMenuExit = new JMenuItem("Close"); resFileMenuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK)); resFileMenuExit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); resFileMenu.add(resFileMenuExit); setJMenuBar(resMenu); // this is the list of saved results listByDateRun(reslist, true); final JList st = new JList(datasets); st.setCellRenderer(new TabListCellRenderer()); st.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) return; JList theList = (JList) e.getSource(); if (theList.isSelectionEmpty()) { System.out.println("Empty selection"); } else { int index = theList.getSelectedIndex(); String thisdata = convertToOriginal(datasets.elementAt(index)); aboutRes.setText((String) reslist.get(thisdata)); aboutRes.setCaretPosition(0); } } }); st.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { try { setCursor(cbusy); String project = convertToOriginal(st.getSelectedValue()); ResultList thisres = new ResultList(mysettings, project, "show_saved_results"); new ShowResultSet(thisres.hash(), project, mysettings); setCursor(cdone); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } }); sp.add(st); // display retrieves all files and shows them in a window JPanel resButtonPanel = new JPanel(); JButton showResButton = new JButton("Display"); showResButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String sel = convertToOriginal(st.getSelectedValue()); if (sel != null) { try { setCursor(cbusy); ResultList thisres = new ResultList(mysettings, sel, "show_saved_results"); if (thisres.hash().size() == 0) JOptionPane.showMessageDialog( sp, "This application launch '" + sel + "' didn't produce any result files."); else new ShowResultSet(thisres.hash(), sel, mysettings); setCursor(cdone); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } else { statusField.setText("Nothing selected to be displayed."); } } }); // add a users note for that project JButton addNoteButton = new JButton("Edit Notes"); addNoteButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String sel = convertToOriginal(st.getSelectedValue()); if (sel != null) { try { setCursor(cbusy); ResultList thisres = new ResultList(mysettings, sel, "Notes", "show_saved_results"); new ShowResultSet(thisres.hash(), sel, mysettings); setCursor(cdone); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } else { statusField.setText("Selected a project!"); } } }); // delete removes the file on the server & edits the list JButton delResButton = new JButton("Delete"); delResButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Object sel[] = st.getSelectedValues(); if (sel != null) { String selList = new String(""); JTextPane delList = new JTextPane(); FontMetrics fm = delList.getFontMetrics(delList.getFont()); int maxWidth = 0; for (int i = 0; i < sel.length; i++) { if (i == sel.length - 1) selList = selList.concat((String) sel[i]); else selList = selList.concat(sel[i] + "\n"); int width = fm.stringWidth((String) sel[i]); if (width > maxWidth) maxWidth = width; } int ok = JOptionPane.OK_OPTION; if (sel.length > 1) { JScrollPane scrollDel = new JScrollPane(delList); delList.setText(selList); delList.setEditable(false); delList.setCaretPosition(0); Dimension d1 = delList.getPreferredSize(); int maxHeight = (int) d1.getHeight() + 5; if (maxHeight > 350) maxHeight = 350; else if (maxHeight < 50) maxHeight = 50; scrollDel.setPreferredSize(new Dimension(maxWidth + 30, maxHeight)); ok = JOptionPane.showConfirmDialog( null, scrollDel, "Confirm Deletion", JOptionPane.YES_NO_OPTION); } if (ok == JOptionPane.OK_OPTION) { try // ask the server to delete these results { setCursor(cbusy); selList = convertToOriginal(selList); new ResultList(mysettings, selList, "delete_saved_results"); setCursor(cdone); // amend the list for (int i = 0; i < sel.length; i++) datasets.removeElement(sel[i]); statusField.setText("Deleted " + sel.length + " result(s)"); aboutRes.setText(""); st.setSelectedIndex(-1); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } else { statusField.setText("Nothing selected for deletion."); } } }); resButtonPanel.add(delResButton); resButtonPanel.add(addNoteButton); resButtonPanel.add(showResButton); resButtonStatus.add(resButtonPanel, BorderLayout.CENTER); resButtonStatus.add(statusField, BorderLayout.SOUTH); Container c = getContentPane(); c.add(ss, BorderLayout.WEST); c.add(aboutScroll, BorderLayout.CENTER); c.add(resButtonStatus, BorderLayout.SOUTH); pack(); setVisible(true); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } }
@SuppressWarnings({"unchecked", "serial"}) public SourcesSelector(final ProcessLog logger) { super(new BorderLayout(0, 5)); this.logger = logger; JPanel buttons = new JPanel(new GridLayout(5, 1, 0, 10)); buttons.add( new JButton( new AbstractAction("Add Source") { @Override public void actionPerformed(ActionEvent e) { chooser.showOpenDialog(null); } })); buttons.add( new JButton( new AbstractAction("Load Sources") { @Override public void actionPerformed(ActionEvent e) { // TODO: use an xml config file to load sources from a saved file refreshModules(); } })); buttons.add( new JButton( new AbstractAction("Remove Source") { @Override public void actionPerformed(ActionEvent e) { int[] selected = list.getSelectedIndices(); int pos = selected.length; while (pos > 0) dir.remove(selected[--pos]); refreshModules(); } })); buttons.add( new JButton( new AbstractAction("Remove All Sources") { @Override public void actionPerformed(ActionEvent e) { dir.removeAllElements(); refreshModules(); } })); buttons.add( new JButton( new AbstractAction("Clear Log") { @Override public void actionPerformed(ActionEvent e) { logger.clear(); } })); splitter = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); splitter.setLeftComponent(buttons); dir = new DefaultListModel(); chooser = new JFileChooser(); chooser.setFileFilter( new FileFilter() { @Override public String getDescription() { return "Directories Or Jars"; } @Override public boolean accept(File f) { return f.isDirectory() || f.toString().endsWith(".jar"); } }); chooser.setMultiSelectionEnabled(true); chooser.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { for (File f : chooser.getSelectedFiles()) { int ind = dir.indexOf(f); if (ind > -1) dir.remove(ind); dir.add(0, f); } refreshModules(); } }); list = new JList(dir); list.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { try { File f = (File) value; if (f.isDirectory()) { return super.getListCellRendererComponent( list, f.toString(), index, isSelected, cellHasFocus); } else { return super.getListCellRendererComponent( list, f.getName(), index, isSelected, cellHasFocus); } } catch (Exception e) { e.printStackTrace(); } return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); } }); list.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { int[] selected = list.getSelectedIndices(); if (selected.length > 0) { File f = (File) dir.get(selected[0]); if (f.isDirectory()) { chooser.setCurrentDirectory(f); } else { chooser.setCurrentDirectory(f.getParentFile()); } } } }); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); JScrollPane scroller = new JScrollPane( list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); splitter.setRightComponent(scroller); add(splitter); splitter.setDividerLocation(0.5); }
/** * Show the results sent to a batch queue. * * @param mysettings jemboss settings * @param epr pending results * @throws JembossSoapException when server connection fails */ public ShowSavedResults(final JembossParams mysettings, final PendingResults epr) throws JembossSoapException { this("Current Sessions Results"); Dimension d = new Dimension(270, 100); ss.setPreferredSize(d); // ss.setMaximumSize(d); JMenu resFileMenu = new JMenu("File"); resMenu.add(resFileMenu); JButton refresh = new JButton(rfii); refresh.setMargin(new Insets(0, 1, 0, 1)); refresh.setToolTipText("Refresh"); resMenu.add(refresh); refresh.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { setCursor(cbusy); epr.updateStatus(); setCursor(cdone); datasets.removeAllElements(); Enumeration enumer = epr.descriptionHash().keys(); while (enumer.hasMoreElements()) { String image = convertToPretty((String) enumer.nextElement()); datasets.addElement(image); } } }); JMenuItem resFileMenuExit = new JMenuItem("Close"); resFileMenuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK)); resFileMenuExit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); resFileMenu.add(resFileMenuExit); setJMenuBar(resMenu); // set up the results list in the gui Enumeration enumer = epr.descriptionHash().keys(); while (enumer.hasMoreElements()) datasets.addElement(convertToPretty((String) enumer.nextElement())); final JList st = new JList(datasets); st.setCellRenderer(new TabListCellRenderer()); st.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) return; JList theList = (JList) e.getSource(); if (!theList.isSelectionEmpty()) { int index = theList.getSelectedIndex(); String thisdata = convertToOriginal(datasets.elementAt(index)); aboutRes.setText((String) epr.descriptionHash().get(thisdata)); aboutRes.setCaretPosition(0); aboutRes.setEditable(false); } } }); st.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { try { setCursor(cbusy); String project = convertToOriginal(st.getSelectedValue()); ResultList thisres = new ResultList(mysettings, project, "show_saved_results"); setCursor(cdone); if (thisres.getStatus().equals("0")) new ShowResultSet(thisres.hash(), project, mysettings); else JOptionPane.showMessageDialog( null, thisres.getStatusMsg(), "Soap Error", JOptionPane.ERROR_MESSAGE); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, null); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } }); sp.add(st); // display retrieves all the files and shows them in a window JPanel resButtonPanel = new JPanel(); JButton showResButton = new JButton("Display"); showResButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (st.getSelectedValue() != null) { try { setCursor(cbusy); String project = convertToOriginal(st.getSelectedValue()); ResultList thisres = new ResultList(mysettings, project, "show_saved_results"); setCursor(cdone); if (thisres.getStatus().equals("0")) new ShowResultSet(thisres.hash(), project, mysettings); else JOptionPane.showMessageDialog( null, thisres.getStatusMsg(), "Soap Error", JOptionPane.ERROR_MESSAGE); } catch (JembossSoapException eae) { setCursor(cdone); AuthPopup ap = new AuthPopup(mysettings, null); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } }); // delete removes the file on the server and edits the list JButton delResButton = new JButton("Delete"); delResButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Object sel[] = st.getSelectedValues(); if (sel != null) { String selList = new String(""); for (int i = 0; i < sel.length; i++) selList = selList.concat(sel[i] + "\n"); int ok = JOptionPane.OK_OPTION; if (sel.length > 1) ok = JOptionPane.showConfirmDialog( null, "Delete the following results:\n" + selList, "Confirm Deletion", JOptionPane.YES_NO_OPTION); if (ok == JOptionPane.OK_OPTION) { try { setCursor(cbusy); selList = convertToOriginal(selList); new ResultList(mysettings, selList, "delete_saved_results"); setCursor(cdone); for (int i = 0; i < sel.length; i++) { JembossProcess jp = epr.getResult(convertToOriginal(sel[i])); epr.removeResult(jp); datasets.removeElement(sel[i]); // amend the list } statusField.setText("Deleted " + sel.length + " result(s)"); aboutRes.setText(""); st.setSelectedIndex(-1); } catch (JembossSoapException eae) { // shouldn't happen AuthPopup ap = new AuthPopup(mysettings, null); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } } }); resButtonPanel.add(delResButton); resButtonPanel.add(showResButton); resButtonStatus.add(resButtonPanel, BorderLayout.CENTER); resButtonStatus.add(statusField, BorderLayout.SOUTH); Container c = getContentPane(); c.add(ss, BorderLayout.WEST); c.add(aboutScroll, BorderLayout.CENTER); c.add(resButtonStatus, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pack(); setVisible(true); // add in automatic updates String freq = (String) AdvancedOptions.jobMgr.getSelectedItem(); int ind = freq.indexOf(" "); new ResultsUpdateTimer(Integer.parseInt(freq.substring(0, ind)), datasets, this); statusField.setText("Window refresh rate " + freq); }