@Override public void ok() { DataFlavor flavor = (DataFlavor) flavorList.getSelectedValue(); if (flavor == null) { flavor = DataFlavor.stringFlavor; } Registers.paste(textArea, '$', flavor); dispose(); }
public PasteSpecialDialog(View view, TextArea textArea) { super(view, jEdit.getProperty("paste-special.title"), true); this.textArea = textArea; JPanel content = new JPanel(new BorderLayout()); content.setBorder(new EmptyBorder(12, 12, 12, 12)); setContentPane(content); Registers.Register register = Registers.getRegister('$'); Transferable transferable = register.getTransferable(); DataFlavor[] flavors = transferable.getTransferDataFlavors(); List<DataFlavor> flavorList = Arrays.asList(flavors); Vector<DataFlavor> supportedFlavors = new Vector<DataFlavor>(this.flavors.length); for (DataFlavor flavor : this.flavors) { if (flavorList.contains(flavor)) { supportedFlavors.add(flavor); } } this.flavorList = new JList(supportedFlavors); this.flavorList.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value.equals(DataFlavor.stringFlavor)) { setText("Plain text"); } else if (value.equals(JEditDataFlavor.jEditRichTextDataFlavor)) { setText("jEdit rich text"); } else if (value.equals(JEditDataFlavor.html)) { setText("html"); } return this; } }); getContentPane().add(new JScrollPane(this.flavorList)); // {{{ Buttons JPanel buttons = new JPanel(); buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS)); buttons.setBorder(new EmptyBorder(12, 0, 0, 0)); buttons.add(Box.createGlue()); ok = new JButton(jEdit.getProperty("common.ok")); ok.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { ok(); } }); getRootPane().setDefaultButton(ok); buttons.add(ok); buttons.add(Box.createHorizontalStrut(6)); cancel = new JButton(jEdit.getProperty("common.cancel")); cancel.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { cancel(); } }); buttons.add(cancel); buttons.add(Box.createGlue()); content.add(BorderLayout.SOUTH, buttons); // }}} pack(); setLocationRelativeTo(view); setVisible(true); }