Example usage for javax.swing JOptionPane showInputDialog

List of usage examples for javax.swing JOptionPane showInputDialog

Introduction

In this page you can find the example usage for javax.swing JOptionPane showInputDialog.

Prototype

@SuppressWarnings("deprecation")
public static Object showInputDialog(Component parentComponent, Object message, String title, int messageType,
        Icon icon, Object[] selectionValues, Object initialSelectionValue) throws HeadlessException 

Source Link

Document

Prompts the user for input in a blocking dialog where the initial selection, possible selections, and all other options can be specified.

Usage

From source file:dbseer.gui.panel.DBSeerLiveMonitorPanel.java

@Override
public synchronized void actionPerformed(ActionEvent event) {
    for (int i = 0; i < transactionRenameButtons.size(); ++i) {
        if (event.getSource() == transactionRenameButtons.get(i)) {
            String newName = (String) JOptionPane.showInputDialog(this,
                    "Enter the new name for this transaction type", "New Dataset", JOptionPane.PLAIN_MESSAGE,
                    null, null, transactionNames.get(i));

            if (newName == null || newName.trim().isEmpty()) {
                return;
            } else {
                newName = newName.trim();
                transactionNames.set(i, newName);
                transactionLabels.get(i).setText(newName);

                DefaultTableModel model = (DefaultTableModel) monitorTable.getModel();
                model.setValueAt(String.format("Current TPS of '%s' transactions", transactionNames.get(i)),
                        2 + (i * ROW_PER_TX_TYPE), 0);
                model.setValueAt(/*  w  w  w .  j a  v a 2s . c  om*/
                        String.format("Current average latency of '%s' transactions", transactionNames.get(i)),
                        2 + (i * ROW_PER_TX_TYPE) + 1, 0);

                //               TimeSeriesCollection collection = (TimeSeriesCollection) throughputChartPanel.getChart().getXYPlot().getDataset();
                throughputCollection.getSeries(i).setKey(newName);
                latencyCollection.getSeries(i).setKey(newName);

                //               if (DBSeerGUI.currentDataset != null)
                //               {
                //                  DBSeerGUI.currentDataset.setTransactionTypeName(i, newName);
                //               }

                for (DBSeerDataSet dataset : DBSeerGUI.liveDatasets) {
                    dataset.setTransactionTypeName(i, newName);
                }

                return;
            }
        }
    }

    for (int i = 0; i < transactionViewSampleButtons.size(); ++i) {
        if (event.getSource() == transactionViewSampleButtons.get(i)) {
            final int type = i;
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    DBSeerShowTransactionExampleFrame sampleFrame = new DBSeerShowTransactionExampleFrame(type);
                    sampleFrame.pack();
                    sampleFrame.setLocationRelativeTo(DBSeerGUI.mainFrame);
                    sampleFrame.setVisible(true);
                }
            });
        }
    }

    for (int i = 0; i < transactionEnableDisableButtons.size(); ++i) {
        if (event.getSource() == transactionEnableDisableButtons.get(i)) {
            final XYItemRenderer throughputRenderer = throughputChartPanel.getChart().getXYPlot().getRenderer();
            final XYItemRenderer latencyRenderer = latencyChartPanel.getChart().getXYPlot().getRenderer();
            final int type = i;
            final JButton button = transactionEnableDisableButtons.get(i);
            final DBSeerDataSet dataset = DBSeerGUI.liveDataset;

            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    if (button.getText() == "Disable") {
                        dataset.disableTransaction(type);
                        throughputRenderer.setSeriesVisible(type, false);
                        latencyRenderer.setSeriesVisible(type, false);
                        button.setText("Enable");
                    } else if (button.getText() == "Enable") {
                        dataset.enableTransaction(type);
                        throughputRenderer.setSeriesVisible(type, true);
                        latencyRenderer.setSeriesVisible(type, true);
                        button.setText("Disable");
                    }
                }
            });
        }
    }

    for (int i = 0; i < transactionDeleteButtons.size(); ++i) {
        if (event.getSource() == transactionDeleteButtons.get(i)) {
            synchronized (LiveMonitorInfo.LOCK) {
                try {
                    DBSeerGUI.middlewareSocket.removeTransactionType(i);
                } catch (IOException e) {
                    DBSeerExceptionHandler.handleException(e);
                }

                throughputCollection.removeSeries(i);
                latencyCollection.removeSeries(i);

                DefaultTableModel model = (DefaultTableModel) monitorTable.getModel();
                int newTxSize = transactionNames.size() - 1;
                for (int j = 0; j < transactionNames.size(); ++j) {
                    model.setValueAt(String.format("Current TPS of '%s' transactions", transactionNames.get(j)),
                            2 + (j * ROW_PER_TX_TYPE), 0);
                    model.setValueAt(String.format("Current average latency of '%s' transactions",
                            transactionNames.get(j)), 2 + (j * ROW_PER_TX_TYPE) + 1, 0);
                    model.setValueAt("", 2 + (j * ROW_PER_TX_TYPE), 1);
                    model.setValueAt("", 2 + (j * ROW_PER_TX_TYPE) + 1, 1);
                }
                model.setValueAt("", 2 + (newTxSize * ROW_PER_TX_TYPE), 0);
                model.setValueAt("", 2 + (newTxSize * ROW_PER_TX_TYPE), 1);
                model.setValueAt("", 2 + (newTxSize * ROW_PER_TX_TYPE) + 1, 0);
                model.setValueAt("", 2 + (newTxSize * ROW_PER_TX_TYPE) + 1, 1);

                final JPanel panel = transactionTypesPanel;
                final JLabel label = transactionLabels.remove(i);
                final JButton renameButton = transactionRenameButtons.remove(i);
                final JButton exampleButton = transactionViewSampleButtons.remove(i);
                final JButton deleteButton = transactionDeleteButtons.remove(i);
                transactionNames.remove(i);

                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        panel.remove(label);
                        panel.remove(renameButton);
                        panel.remove(exampleButton);
                        panel.remove(deleteButton);

                        panel.revalidate();
                        panel.repaint();
                    }
                });
            }
            break;
        }
    }

}

From source file:lu.fisch.moenagade.model.Project.java

public BloxsClass addWorld() {
    String name = "";
    boolean result;

    do {/* w ww.j  av  a 2s .  co  m*/
        name = (String) JOptionPane.showInputDialog(frame, "Please enter the world's name.", "Add world",
                JOptionPane.PLAIN_MESSAGE, null, null, name);

        if (name == null)
            return null;

        result = true;

        // check if name is OK
        Matcher matcher = Pattern.compile("^[a-zA-Z_$][a-zA-Z_$0-9]*$").matcher(name);
        boolean found = matcher.find();
        if (!found) {
            result = false;
            JOptionPane.showMessageDialog(frame, "Please chose a valid name.", "Error",
                    JOptionPane.ERROR_MESSAGE, Moenagade.IMG_ERROR);
        }
        // check if name is unique
        else if (worlds.containsKey(name) || entities.containsKey(name)) {
            result = false;
            JOptionPane.showMessageDialog(frame, "This name is not unique.", "Error", JOptionPane.ERROR_MESSAGE,
                    Moenagade.IMG_ERROR);
        }
        // check internal name
        else if (name.trim().equals("World")) {
            result = false;
            JOptionPane.showMessageDialog(frame,
                    "The name \"World\" is already internaly\nused and thus not allowed!", "Error",
                    JOptionPane.ERROR_MESSAGE, Moenagade.IMG_ERROR);
        } else if (name.charAt(0) != name.toUpperCase().charAt(0)) {
            result = false;
            JOptionPane.showMessageDialog(frame, "The name should start with a capital letter.", "Error",
                    JOptionPane.ERROR_MESSAGE, Moenagade.IMG_ERROR);
        } else {
            World world = new World(name);
            world.setProject(this);
            selected = world;
            worlds.put(name, world);

            return world;
        }
    } while (!result);

    return null;
}

From source file:com.ejie.uda.jsonI18nEditor.Editor.java

public void showRenameTranslationDialog(String key) {
    String newKey = "";
    while (newKey != null && newKey.isEmpty()) {
        newKey = (String) JOptionPane.showInputDialog(this,
                MessageBundle.get("dialogs.translation.rename.text"),
                MessageBundle.get("dialogs.translation.rename.title"), JOptionPane.QUESTION_MESSAGE, null, null,
                key);/* w w w  .j  a  v a  2s .  c o m*/
        if (newKey != null) {
            newKey = newKey.trim();
            if (!TranslationKeys.isValid(newKey)) {
                showError(MessageBundle.get("dialogs.translation.rename.error"));
            } else {
                TranslationTreeNode newNode = translationTree.getNodeByKey(newKey);
                TranslationTreeNode oldNode = translationTree.getNodeByKey(key);
                if (newNode != null) {
                    boolean isReplace = newNode.isLeaf() || oldNode.isLeaf();
                    boolean confirm = showConfirmation(MessageBundle.get("dialogs.translation.conflict.title"),
                            MessageBundle.get(
                                    "dialogs.translation.conflict.text." + (isReplace ? "replace" : "merge")));
                    if (confirm) {
                        renameTranslationKey(key, newKey);
                    }
                } else {
                    renameTranslationKey(key, newKey);
                }
            }
        }
    }
}

From source file:org.obiba.onyx.jade.instrument.ricelake.RiceLakeWeightInstrumentRunner.java

private void configure() {
    // List all serial port in a drop down list, so a new one can be
    // selected.//www . j  a  va  2s.c o  m
    refreshSerialPortList();
    String selectedPort = (String) JOptionPane.showInputDialog(appWindow,
            resourceBundle.getString("Instruction.Choose_port"), resourceBundle.getString("Title.Settings"),
            JOptionPane.QUESTION_MESSAGE, null, availablePortNames.toArray(), getComPort());

    if (selectedPort != null) {
        setComPort(selectedPort);

        try {
            settingsHelper.saveSettings(localSettings);
        } catch (CouldNotSaveSettingsException e) {
            log.error("Local settings could not be persisted.", e);
        }

        setupSerialPort();
    }
}

From source file:components.DialogDemo.java

/** Creates the panel shown by the second tab. */
private JPanel createFeatureDialogBox() {
    final int numButtons = 5;
    JRadioButton[] radioButtons = new JRadioButton[numButtons];
    final ButtonGroup group = new ButtonGroup();

    JButton showItButton = null;/*from w w w  . j av a 2 s.  c  o m*/

    final String pickOneCommand = "pickone";
    final String textEnteredCommand = "textfield";
    final String nonAutoCommand = "nonautooption";
    final String customOptionCommand = "customoption";
    final String nonModalCommand = "nonmodal";

    radioButtons[0] = new JRadioButton("Pick one of several choices");
    radioButtons[0].setActionCommand(pickOneCommand);

    radioButtons[1] = new JRadioButton("Enter some text");
    radioButtons[1].setActionCommand(textEnteredCommand);

    radioButtons[2] = new JRadioButton("Non-auto-closing dialog");
    radioButtons[2].setActionCommand(nonAutoCommand);

    radioButtons[3] = new JRadioButton("Input-validating dialog " + "(with custom message area)");
    radioButtons[3].setActionCommand(customOptionCommand);

    radioButtons[4] = new JRadioButton("Non-modal dialog");
    radioButtons[4].setActionCommand(nonModalCommand);

    for (int i = 0; i < numButtons; i++) {
        group.add(radioButtons[i]);
    }
    radioButtons[0].setSelected(true);

    showItButton = new JButton("Show it!");
    showItButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String command = group.getSelection().getActionCommand();

            //pick one of many
            if (command == pickOneCommand) {
                Object[] possibilities = { "ham", "spam", "yam" };
                String s = (String) JOptionPane.showInputDialog(frame,
                        "Complete the sentence:\n" + "\"Green eggs and...\"", "Customized Dialog",
                        JOptionPane.PLAIN_MESSAGE, icon, possibilities, "ham");

                //If a string was returned, say so.
                if ((s != null) && (s.length() > 0)) {
                    setLabel("Green eggs and... " + s + "!");
                    return;
                }

                //If you're here, the return value was null/empty.
                setLabel("Come on, finish the sentence!");

                //text input
            } else if (command == textEnteredCommand) {
                String s = (String) JOptionPane.showInputDialog(frame,
                        "Complete the sentence:\n" + "\"Green eggs and...\"", "Customized Dialog",
                        JOptionPane.PLAIN_MESSAGE, icon, null, "ham");

                //If a string was returned, say so.
                if ((s != null) && (s.length() > 0)) {
                    setLabel("Green eggs and... " + s + "!");
                    return;
                }

                //If you're here, the return value was null/empty.
                setLabel("Come on, finish the sentence!");

                //non-auto-closing dialog
            } else if (command == nonAutoCommand) {
                final JOptionPane optionPane = new JOptionPane(
                        "The only way to close this dialog is by\n" + "pressing one of the following buttons.\n"
                                + "Do you understand?",
                        JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);

                //You can't use pane.createDialog() because that
                //method sets up the JDialog with a property change
                //listener that automatically closes the window
                //when a button is clicked.
                final JDialog dialog = new JDialog(frame, "Click a button", true);
                dialog.setContentPane(optionPane);
                dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
                dialog.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent we) {
                        setLabel("Thwarted user attempt to close window.");
                    }
                });
                optionPane.addPropertyChangeListener(new PropertyChangeListener() {
                    public void propertyChange(PropertyChangeEvent e) {
                        String prop = e.getPropertyName();

                        if (dialog.isVisible() && (e.getSource() == optionPane)
                                && (JOptionPane.VALUE_PROPERTY.equals(prop))) {
                            //If you were going to check something
                            //before closing the window, you'd do
                            //it here.
                            dialog.setVisible(false);
                        }
                    }
                });
                dialog.pack();
                dialog.setLocationRelativeTo(frame);
                dialog.setVisible(true);

                int value = ((Integer) optionPane.getValue()).intValue();
                if (value == JOptionPane.YES_OPTION) {
                    setLabel("Good.");
                } else if (value == JOptionPane.NO_OPTION) {
                    setLabel("Try using the window decorations " + "to close the non-auto-closing dialog. "
                            + "You can't!");
                } else {
                    setLabel("Window unavoidably closed (ESC?).");
                }

                //non-auto-closing dialog with custom message area
                //NOTE: if you don't intend to check the input,
                //then just use showInputDialog instead.
            } else if (command == customOptionCommand) {
                customDialog.setLocationRelativeTo(frame);
                customDialog.setVisible(true);

                String s = customDialog.getValidatedText();
                if (s != null) {
                    //The text is valid.
                    setLabel("Congratulations!  " + "You entered \"" + s + "\".");
                }

                //non-modal dialog
            } else if (command == nonModalCommand) {
                //Create the dialog.
                final JDialog dialog = new JDialog(frame, "A Non-Modal Dialog");

                //Add contents to it. It must have a close button,
                //since some L&Fs (notably Java/Metal) don't provide one
                //in the window decorations for dialogs.
                JLabel label = new JLabel("<html><p align=center>" + "This is a non-modal dialog.<br>"
                        + "You can have one or more of these up<br>" + "and still use the main window.");
                label.setHorizontalAlignment(JLabel.CENTER);
                Font font = label.getFont();
                label.setFont(label.getFont().deriveFont(font.PLAIN, 14.0f));

                JButton closeButton = new JButton("Close");
                closeButton.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        dialog.setVisible(false);
                        dialog.dispose();
                    }
                });
                JPanel closePanel = new JPanel();
                closePanel.setLayout(new BoxLayout(closePanel, BoxLayout.LINE_AXIS));
                closePanel.add(Box.createHorizontalGlue());
                closePanel.add(closeButton);
                closePanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 5, 5));

                JPanel contentPane = new JPanel(new BorderLayout());
                contentPane.add(label, BorderLayout.CENTER);
                contentPane.add(closePanel, BorderLayout.PAGE_END);
                contentPane.setOpaque(true);
                dialog.setContentPane(contentPane);

                //Show it.
                dialog.setSize(new Dimension(300, 150));
                dialog.setLocationRelativeTo(frame);
                dialog.setVisible(true);
            }
        }
    });

    return createPane(moreDialogDesc + ":", radioButtons, showItButton);
}

From source file:com.ejie.uda.jsonI18nEditor.Editor.java

public void showDuplicateTranslationDialog(String key) {
    String newKey = "";
    while (newKey != null && newKey.isEmpty()) {
        newKey = (String) JOptionPane.showInputDialog(this,
                MessageBundle.get("dialogs.translation.duplicate.text"),
                MessageBundle.get("dialogs.translation.duplicate.title"), JOptionPane.QUESTION_MESSAGE, null,
                null, key);/*ww  w. j ava 2s .  c om*/
        if (newKey != null) {
            newKey = newKey.trim();
            if (!TranslationKeys.isValid(newKey)) {
                showError(MessageBundle.get("dialogs.translation.duplicate.error"));
            } else {
                TranslationTreeNode newNode = translationTree.getNodeByKey(newKey);
                TranslationTreeNode oldNode = translationTree.getNodeByKey(key);
                if (newNode != null) {
                    boolean isReplace = newNode.isLeaf() || oldNode.isLeaf();
                    boolean confirm = showConfirmation(MessageBundle.get("dialogs.translation.conflict.title"),
                            MessageBundle.get(
                                    "dialogs.translation.conflict.text." + (isReplace ? "replace" : "merge")));
                    if (confirm) {
                        duplicateTranslationKey(key, newKey);
                    }
                } else {
                    duplicateTranslationKey(key, newKey);
                }
            }
        }
    }
}

From source file:net.chaosserver.timelord.swingui.CommonTaskPanel.java

/**
 * Bring up a single dialog to allow a user to unhide a task.
 *//* w  w  w  .j a v  a2s.co m*/
public void showUnhideTaskDialog() {
    List<TimelordTask> hiddenTasks = getTimelordData().getHiddenTasks();
    TimelordTask timelordTask = (TimelordTask) JOptionPane.showInputDialog(this, "Unhide Task", "Unhide Task",
            JOptionPane.QUESTION_MESSAGE, null, hiddenTasks.toArray(), null);

    if (timelordTask != null) {
        timelordTask.setHidden(false);
    }
}

From source file:display.containers.FileManager.java

public Container getPane() {
    //if (gui==null) {

    fileSystemView = FileSystemView.getFileSystemView();
    desktop = Desktop.getDesktop();

    JPanel detailView = new JPanel(new BorderLayout(3, 3));
    //fileTableModel = new FileTableModel();

    table = new JTable();
    table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    table.setAutoCreateRowSorter(true);//from   ww w . j  a v a2s .  c om
    table.setShowVerticalLines(false);
    table.addMouseListener(new MouseAdapter() {
        public void mousePressed(MouseEvent e) {
            if (e.getClickCount() >= 2) {
                Point p = e.getPoint();
                int row = table.convertRowIndexToModel(table.rowAtPoint(p));
                int column = table.convertColumnIndexToModel(table.columnAtPoint(p));
                if (row >= 0 && column >= 0) {
                    mouseDblClicked(row, column);
                }
            }
        }
    });
    table.addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(KeyEvent arg0) {

        }

        @Override
        public void keyReleased(KeyEvent arg0) {
            if (KeyEvent.VK_DELETE == arg0.getKeyCode()) {
                if (mode != 2) {
                    parentFrame.setLock(true);
                    parentFrame.getProgressBarPanel().setVisible(true);
                    Thread t = new Thread(new Runnable() {

                        @Override
                        public void run() {
                            try {
                                deleteSelectedFiles();
                            } catch (IOException e) {
                                JOptionPane.showMessageDialog(parentFrame, "Error during the deletion.",
                                        "Deletion error", JOptionPane.ERROR_MESSAGE);
                                WindowManager.mwLogger.log(Level.SEVERE, "Error during the deletion.", e);
                            } finally {
                                parentFrame.setLock(false);
                                refresh();
                                parentFrame.getProgressBarPanel().setVisible(false);
                            }
                        }
                    });
                    t.start();

                } else {
                    if (UserProfile.CURRENT_USER.getLevel() == 3) {
                        parentFrame.setLock(true);
                        parentFrame.getProgressBarPanel().setVisible(true);
                        Thread delThread = new Thread(new Runnable() {

                            @Override
                            public void run() {
                                int[] rows = table.getSelectedRows();
                                int[] columns = table.getSelectedColumns();
                                for (int i = 0; i < rows.length; i++) {
                                    if (!continueAction) {
                                        continueAction = true;
                                        return;
                                    }
                                    int row = table.convertRowIndexToModel(rows[i]);
                                    try {
                                        deleteServerFile(row);
                                    } catch (Exception e) {
                                        WindowManager.mwLogger.log(Level.SEVERE, "Error during the deletion.",
                                                e);
                                    }
                                }
                                refresh();
                                parentFrame.setLock(false);
                                parentFrame.getProgressBarPanel().setVisible(false);
                            }
                        });
                        delThread.start();

                    }
                }
            }
        }

        @Override
        public void keyPressed(KeyEvent arg0) {
            // TODO Auto-generated method stub

        }
    });
    table.getSelectionModel().addListSelectionListener(listSelectionListener);
    JScrollPane tableScroll = new JScrollPane(table);
    Dimension d = tableScroll.getPreferredSize();
    tableScroll.setPreferredSize(new Dimension((int) d.getWidth(), (int) d.getHeight() / 2));
    detailView.add(tableScroll, BorderLayout.CENTER);

    // the File tree
    DefaultMutableTreeNode root = new DefaultMutableTreeNode();
    treeModel = new DefaultTreeModel(root);
    table.getRowSorter().addRowSorterListener(new RowSorterListener() {

        @Override
        public void sorterChanged(RowSorterEvent e) {
            ((FileTableModel) table.getModel()).fireTableDataChanged();
        }
    });

    // show the file system roots.
    File[] roots = fileSystemView.getRoots();
    for (File fileSystemRoot : roots) {
        DefaultMutableTreeNode node = new DefaultMutableTreeNode(fileSystemRoot);
        root.add(node);
        //showChildren(node);
        //
        File[] files = fileSystemView.getFiles(fileSystemRoot, true);
        for (File file : files) {
            if (file.isDirectory()) {
                node.add(new DefaultMutableTreeNode(file));
            }
        }
        //
    }
    JScrollPane treeScroll = new JScrollPane();

    Dimension preferredSize = treeScroll.getPreferredSize();
    Dimension widePreferred = new Dimension(200, (int) preferredSize.getHeight());
    treeScroll.setPreferredSize(widePreferred);

    JPanel fileView = new JPanel(new BorderLayout(3, 3));

    detailView.add(fileView, BorderLayout.SOUTH);

    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, treeScroll, detailView);

    JPanel simpleOutput = new JPanel(new BorderLayout(3, 3));
    progressBar = new JProgressBar();
    simpleOutput.add(progressBar, BorderLayout.EAST);
    progressBar.setVisible(false);
    showChildren(getCurrentDir().toPath());
    //table.setDragEnabled(true);
    table.setColumnSelectionAllowed(false);

    // Menu popup
    Pmenu = new JPopupMenu();
    changeProjectitem = new JMenuItem("Reassign");
    renameProjectitem = new JMenuItem("Rename");
    twitem = new JMenuItem("To workspace");
    tlitem = new JMenuItem("To local");
    processitem = new JMenuItem("Select for process");
    switch (mode) {
    case 0:
        Pmenu.add(twitem);
        twitem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                parentFrame.getBtnlocalTowork().doClick();
            }
        });
        break;
    case 1:
        Pmenu.add(tlitem);
        Pmenu.add(processitem);
        tlitem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                parentFrame.getBtnWorkTolocal().doClick();
            }
        });
        processitem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        // Recupere les lignes selectionnees
                        int[] indices = table.getSelectedRows();
                        // On recupere les fichiers correspondants
                        ArrayList<File> files = new ArrayList<File>();
                        for (int i = 0; i < indices.length; i++) {
                            int row = table.convertRowIndexToModel(indices[i]);
                            File fi = ((FileTableModel) table.getModel()).getFile(row);
                            if (fi.isDirectory())
                                files.add(fi);
                        }
                        ImageProcessingFrame imf = new ImageProcessingFrame(files);
                    }
                });

            }
        });
        break;
    case 2:
        if (UserProfile.CURRENT_USER.getLevel() == 3) {
            Pmenu.add(changeProjectitem);
            Pmenu.add(renameProjectitem);
        }
        Pmenu.add(twitem);
        twitem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                parentFrame.getBtndistToWorkspace().doClick();
            }
        });
        Pmenu.add(tlitem);
        tlitem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                parentFrame.getBtndistToLocal().doClick();
            }
        });
        break;
    }
    changeProjectitem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            table.setEnabled(false);
            File from = ((FileTableModel) table.getModel())
                    .getFile(table.convertRowIndexToModel(table.getSelectedRows()[0]));

            ReassignProjectPanel reas = new ReassignProjectPanel(from.toPath()); // mode creation de liens
            Popup popup = PopupFactory.getSharedInstance().getPopup(WindowManager.MAINWINDOW, reas,
                    (int) WindowManager.MAINWINDOW.getX() + 200, (int) WindowManager.MAINWINDOW.getY() + 150);
            reas.setPopupWindow(popup);
            popup.show();
            table.setEnabled(true);
        }
    });
    renameProjectitem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            table.setEnabled(false);
            final File from = ((FileTableModel) table.getModel())
                    .getFile(table.convertRowIndexToModel(table.getSelectedRows()[0]));
            JDialog.setDefaultLookAndFeelDecorated(true);
            String s = (String) JOptionPane.showInputDialog(WindowManager.MAINWINDOW, "New project name ?",
                    "Rename project", JOptionPane.PLAIN_MESSAGE, null, null, from.getName());

            //If a string was returned, say so.
            if ((s != null) && (s.length() > 0)) {
                ProjectDAO pdao = new MySQLProjectDAO();
                if (new File(from.getParent() + File.separator + s).exists()) {
                    SwingUtilities.invokeLater(new Runnable() {

                        @Override
                        public void run() {
                            JDialog.setDefaultLookAndFeelDecorated(true);
                            JOptionPane.showMessageDialog(WindowManager.MAINWINDOW,
                                    "Couldn't rename " + from.getName()
                                            + " (A file with this filename already exists)",
                                    "Renaming error", JOptionPane.ERROR_MESSAGE);
                        }
                    });
                    WindowManager.mwLogger.log(Level.SEVERE,
                            "Error during file project renaming (" + from.getName() + "). [Duplication error]");
                } else {
                    try {
                        boolean succeed = pdao.renameProject(from.getName(), s);
                        if (!succeed) {
                            SwingUtilities.invokeLater(new Runnable() {

                                @Override
                                public void run() {
                                    JDialog.setDefaultLookAndFeelDecorated(true);
                                    JOptionPane.showMessageDialog(WindowManager.MAINWINDOW,
                                            "Couldn't rename " + from.getName()
                                                    + " (no project with this name)",
                                            "Renaming error", JOptionPane.ERROR_MESSAGE);
                                }
                            });
                        } else {
                            from.renameTo(new File(from.getParent() + File.separator + s));
                            // on renomme le repertoire nifti ou dicom correspondant si il existe
                            switch (from.getParentFile().getName()) {
                            case ServerInfo.NRI_ANALYSE_NAME:
                                if (new File(from.getAbsolutePath().replaceAll(ServerInfo.NRI_ANALYSE_NAME,
                                        ServerInfo.NRI_DICOM_NAME)).exists())
                                    try {
                                        Files.move(Paths.get(from.getAbsolutePath().replaceAll(
                                                ServerInfo.NRI_ANALYSE_NAME, ServerInfo.NRI_DICOM_NAME)),
                                                Paths.get(from.getParent().replaceAll(
                                                        ServerInfo.NRI_ANALYSE_NAME, ServerInfo.NRI_DICOM_NAME)
                                                        + File.separator + s));
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                        SwingUtilities.invokeLater(new Runnable() {

                                            @Override
                                            public void run() {
                                                JDialog.setDefaultLookAndFeelDecorated(true);
                                                JOptionPane.showMessageDialog(WindowManager.MAINWINDOW,
                                                        "Couldn't rename " + from.getName()
                                                                + " (error with file system)",
                                                        "Renaming error", JOptionPane.ERROR_MESSAGE);
                                            }
                                        });
                                        WindowManager.mwLogger.log(Level.SEVERE,
                                                "Error during file project renaming (" + from.getName() + ")",
                                                e);
                                    } //from.renameTo(new File(from.getParent().replaceAll(ServerInfo.NRI_ANALYSE_NAME, ServerInfo.NRI_DICOM_NAME)+File.separator+s));
                                break;
                            case ServerInfo.NRI_DICOM_NAME:
                                if (new File(from.getAbsolutePath().replaceAll(ServerInfo.NRI_DICOM_NAME,
                                        ServerInfo.NRI_ANALYSE_NAME)).exists())
                                    try {
                                        Files.move(Paths.get(from.getAbsolutePath().replaceAll(
                                                ServerInfo.NRI_DICOM_NAME, ServerInfo.NRI_ANALYSE_NAME)),
                                                Paths.get(from.getParent().replaceAll(ServerInfo.NRI_DICOM_NAME,
                                                        ServerInfo.NRI_ANALYSE_NAME) + File.separator + s));
                                    } catch (IOException e) {
                                        SwingUtilities.invokeLater(new Runnable() {

                                            @Override
                                            public void run() {
                                                JDialog.setDefaultLookAndFeelDecorated(true);
                                                JOptionPane.showMessageDialog(WindowManager.MAINWINDOW,
                                                        "Couldn't rename " + from.getName()
                                                                + " (error with file system)",
                                                        "Renaming error", JOptionPane.ERROR_MESSAGE);
                                            }
                                        });
                                        e.printStackTrace();
                                        WindowManager.mwLogger.log(Level.SEVERE,
                                                "Error during file project renaming (" + from.getName() + ")",
                                                e);
                                    } //from.renameTo(new File(from.getParent().replaceAll(ServerInfo.NRI_DICOM_NAME, ServerInfo.NRI_ANALYSE_NAME)+File.separator+s));
                                break;
                            }
                            refresh();
                        }
                    } catch (final SQLException e) {
                        WindowManager.mwLogger.log(Level.SEVERE, "Error during SQL project renaming", e);
                        SwingUtilities.invokeLater(new Runnable() {

                            @Override
                            public void run() {
                                JDialog.setDefaultLookAndFeelDecorated(true);
                                JOptionPane.showMessageDialog(WindowManager.MAINWINDOW,
                                        "Exception : " + e.toString(), "Openning error",
                                        JOptionPane.ERROR_MESSAGE);
                            }
                        });
                    }
                }
            }
            table.setEnabled(true);
        }
    });
    table.addMouseListener(new MouseListener() {

        public void mouseClicked(MouseEvent me) {

        }

        public void mouseEntered(MouseEvent e) {
        }

        public void mouseExited(MouseEvent e) {
        }

        public void mousePressed(MouseEvent e) {
        }

        public void mouseReleased(MouseEvent me) {
            if (me.getButton() == 3 && table.getSelectedRowCount() > 0) {
                int row = table.convertRowIndexToModel(table.rowAtPoint(me.getPoint()));
                changeProjectitem.setVisible(isPatient(((FileTableModel) table.getModel()).getFile(row)));
                renameProjectitem.setVisible(isProject(((FileTableModel) table.getModel()).getFile(row)));
                Pmenu.show(me.getComponent(), me.getX(), me.getY());
            }
        }
    });
    //

    //}
    return tableScroll;
}

From source file:DialogDemo.java

/** Creates the panel shown by the second tab. */
private JPanel createFeatureDialogBox() {
    final int numButtons = 5;
    JRadioButton[] radioButtons = new JRadioButton[numButtons];
    final ButtonGroup group = new ButtonGroup();

    JButton showItButton = null;/*from   w  ww  .j av a 2s. co m*/

    final String pickOneCommand = "pickone";
    final String textEnteredCommand = "textfield";
    final String nonAutoCommand = "nonautooption";
    final String customOptionCommand = "customoption";
    final String nonModalCommand = "nonmodal";

    radioButtons[0] = new JRadioButton("Pick one of several choices");
    radioButtons[0].setActionCommand(pickOneCommand);

    radioButtons[1] = new JRadioButton("Enter some text");
    radioButtons[1].setActionCommand(textEnteredCommand);

    radioButtons[2] = new JRadioButton("Non-auto-closing dialog");
    radioButtons[2].setActionCommand(nonAutoCommand);

    radioButtons[3] = new JRadioButton("Input-validating dialog " + "(with custom message area)");
    radioButtons[3].setActionCommand(customOptionCommand);

    radioButtons[4] = new JRadioButton("Non-modal dialog");
    radioButtons[4].setActionCommand(nonModalCommand);

    for (int i = 0; i < numButtons; i++) {
        group.add(radioButtons[i]);
    }
    radioButtons[0].setSelected(true);

    showItButton = new JButton("Show it!");
    showItButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String command = group.getSelection().getActionCommand();

            // pick one of many
            if (command == pickOneCommand) {
                Object[] possibilities = { "ham", "spam", "yam" };
                String s = (String) JOptionPane.showInputDialog(frame,
                        "Complete the sentence:\n" + "\"Green eggs and...\"", "Customized Dialog",
                        JOptionPane.PLAIN_MESSAGE, icon, possibilities, "ham");

                // If a string was returned, say so.
                if ((s != null) && (s.length() > 0)) {
                    setLabel("Green eggs and... " + s + "!");
                    return;
                }

                // If you're here, the return value was null/empty.
                setLabel("Come on, finish the sentence!");

                // text input
            } else if (command == textEnteredCommand) {
                String s = (String) JOptionPane.showInputDialog(frame,
                        "Complete the sentence:\n" + "\"Green eggs and...\"", "Customized Dialog",
                        JOptionPane.PLAIN_MESSAGE, icon, null, "ham");

                // If a string was returned, say so.
                if ((s != null) && (s.length() > 0)) {
                    setLabel("Green eggs and... " + s + "!");
                    return;
                }

                // If you're here, the return value was null/empty.
                setLabel("Come on, finish the sentence!");

                // non-auto-closing dialog
            } else if (command == nonAutoCommand) {
                final JOptionPane optionPane = new JOptionPane(
                        "The only way to close this dialog is by\n" + "pressing one of the following buttons.\n"
                                + "Do you understand?",
                        JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);

                // You can't use pane.createDialog() because that
                // method sets up the JDialog with a property change
                // listener that automatically closes the window
                // when a button is clicked.
                final JDialog dialog = new JDialog(frame, "Click a button", true);
                dialog.setContentPane(optionPane);
                dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
                dialog.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent we) {
                        setLabel("Thwarted user attempt to close window.");
                    }
                });
                optionPane.addPropertyChangeListener(new PropertyChangeListener() {
                    public void propertyChange(PropertyChangeEvent e) {
                        String prop = e.getPropertyName();

                        if (dialog.isVisible() && (e.getSource() == optionPane)
                                && (JOptionPane.VALUE_PROPERTY.equals(prop))) {
                            // If you were going to check something
                            // before closing the window, you'd do
                            // it here.
                            dialog.setVisible(false);
                        }
                    }
                });
                dialog.pack();
                dialog.setLocationRelativeTo(frame);
                dialog.setVisible(true);

                int value = ((Integer) optionPane.getValue()).intValue();
                if (value == JOptionPane.YES_OPTION) {
                    setLabel("Good.");
                } else if (value == JOptionPane.NO_OPTION) {
                    setLabel("Try using the window decorations " + "to close the non-auto-closing dialog. "
                            + "You can't!");
                } else {
                    setLabel("Window unavoidably closed (ESC?).");
                }

                // non-auto-closing dialog with custom message area
                // NOTE: if you don't intend to check the input,
                // then just use showInputDialog instead.
            } else if (command == customOptionCommand) {
                customDialog.setLocationRelativeTo(frame);
                customDialog.setVisible(true);

                String s = customDialog.getValidatedText();
                if (s != null) {
                    // The text is valid.
                    setLabel("Congratulations!  " + "You entered \"" + s + "\".");
                }

                // non-modal dialog
            } else if (command == nonModalCommand) {
                // Create the dialog.
                final JDialog dialog = new JDialog(frame, "A Non-Modal Dialog");

                // Add contents to it. It must have a close button,
                // since some L&Fs (notably Java/Metal) don't provide one
                // in the window decorations for dialogs.
                JLabel label = new JLabel("<html><p align=center>" + "This is a non-modal dialog.<br>"
                        + "You can have one or more of these up<br>" + "and still use the main window.");
                label.setHorizontalAlignment(JLabel.CENTER);
                Font font = label.getFont();
                label.setFont(label.getFont().deriveFont(font.PLAIN, 14.0f));

                JButton closeButton = new JButton("Close");
                closeButton.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        dialog.setVisible(false);
                        dialog.dispose();
                    }
                });
                JPanel closePanel = new JPanel();
                closePanel.setLayout(new BoxLayout(closePanel, BoxLayout.LINE_AXIS));
                closePanel.add(Box.createHorizontalGlue());
                closePanel.add(closeButton);
                closePanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 5, 5));

                JPanel contentPane = new JPanel(new BorderLayout());
                contentPane.add(label, BorderLayout.CENTER);
                contentPane.add(closePanel, BorderLayout.PAGE_END);
                contentPane.setOpaque(true);
                dialog.setContentPane(contentPane);

                // Show it.
                dialog.setSize(new Dimension(300, 150));
                dialog.setLocationRelativeTo(frame);
                dialog.setVisible(true);
            }
        }
    });

    return createPane(moreDialogDesc + ":", radioButtons, showItButton);
}

From source file:lu.fisch.moenagade.model.Project.java

public boolean renameImage(ImageFile imageFile) {
    String name = getFilename(imageFile);
    String ext = getExtension(imageFile);
    boolean result;

    do {/*from w ww . j a  v  a 2s. co m*/
        result = true;

        name = (String) JOptionPane.showInputDialog(frame, "Please enter the image's new name.", "Rename image",
                JOptionPane.PLAIN_MESSAGE, null, null, name);

        if (name == null)
            return false;

        // check if name is OK
        Matcher matcher = Pattern.compile("^[a-zA-Z_$][a-zA-Z_$0-9]*$").matcher(name);
        boolean found = matcher.find();
        if (!found) {
            result = false;
            JOptionPane.showMessageDialog(frame, "Please chose a valid name.", "Error",
                    JOptionPane.ERROR_MESSAGE, Moenagade.IMG_ERROR);
        }
        // check if name is unique
        else if ((new File(directoryName + System.getProperty("file.separator") + "bloxs"
                + System.getProperty("file.separator") + "images" + System.getProperty("file.separator") + name
                + "." + ext)).exists()) {
            result = false;
            JOptionPane.showMessageDialog(frame, "There exists already an image with this name!", "Error",
                    JOptionPane.ERROR_MESSAGE, Moenagade.IMG_ERROR);
        } else {
            // send refresh
            refresh(new Change(null, -1, "rename.image", imageFile.toString(), name + "." + ext));
            // do the rename
            File fFrom = new File(directoryName + System.getProperty("file.separator") + "bloxs"
                    + System.getProperty("file.separator") + "images" + System.getProperty("file.separator")
                    + imageFile.toString());
            File fTo = new File(directoryName + System.getProperty("file.separator") + "bloxs"
                    + System.getProperty("file.separator") + "images" + System.getProperty("file.separator")
                    + name + "." + ext);
            if (fFrom.exists())
                fFrom.renameTo(fTo);
            return true;
        }
    } while (!result);

    return false;
}