package de.tud.inf.gui.properties; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.Set; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ListModel; import com.rapidminer.gui.RapidMinerGUI; import com.rapidminer.gui.tools.ExtendedJList; import com.rapidminer.gui.tools.ExtendedJScrollPane; import com.rapidminer.gui.tools.ExtendedListModel; import com.rapidminer.gui.tools.SwingTools; public class FilesPropertyDialog extends JDialog{ private ExtendedJList files; private Set<File> fileSet; private ExtendedListModel model; private boolean ok; public FilesPropertyDialog(Set<File> fileSet) { super(RapidMinerGUI.getMainFrame(),"Files",true); ok = false; this.fileSet = fileSet; model = new ExtendedListModel(); files = new ExtendedJList(model); initializeModel(); getContentPane().setLayout(new BorderLayout()); JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JButton addButton = new JButton("Add"); addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // listPropertyTable.addRow(); add(); } }); buttonPanel.add(addButton); JButton removeButton = new JButton("Remove"); removeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // listPropertyTable.removeSelected(); remove(); } }); buttonPanel.add(removeButton); JButton okButton = new JButton("Ok"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // ok(); ok = true; dispose(); } }); buttonPanel.add(okButton); getContentPane().add(buttonPanel, BorderLayout.SOUTH); JScrollPane scrollpane = new ExtendedJScrollPane(files); getContentPane().add(scrollpane, BorderLayout.CENTER); setSize(RapidMinerGUI.getMainFrame().getWidth() / 2, RapidMinerGUI.getMainFrame().getHeight() / 2); setLocationRelativeTo(RapidMinerGUI.getMainFrame()); } private void initializeModel() { for(File f : fileSet) model.addElement(f); } private void add() { JFileChooser chooser = SwingTools.createFileChooser(null, false, null); chooser.setMultiSelectionEnabled(true); if(chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { // add Files to the model ExtendedListModel mod = (ExtendedListModel)files.getModel(); for(File file : chooser.getSelectedFiles()) { if(!fileSet.contains(file)) { mod.addElement(file); fileSet.add(file); } } } } private void remove() { ExtendedListModel mod = (ExtendedListModel)files.getModel(); for(Object o : files.getSelectedValues()) { fileSet.remove(o); mod.removeElement(o); } } public boolean isOk() { return ok; } }