2007-12-23 14:28:04 -05:00
|
|
|
|
|
|
|
package net.sourceforge.filebot.ui.panel.analyze;
|
|
|
|
|
|
|
|
|
|
|
|
import java.awt.BorderLayout;
|
|
|
|
import java.awt.Dimension;
|
|
|
|
import java.beans.PropertyChangeEvent;
|
|
|
|
import java.beans.PropertyChangeListener;
|
|
|
|
import java.io.File;
|
2008-02-13 15:08:06 -05:00
|
|
|
import java.util.ArrayList;
|
2007-12-23 14:28:04 -05:00
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import javax.swing.BorderFactory;
|
|
|
|
import javax.swing.Box;
|
|
|
|
import javax.swing.BoxLayout;
|
|
|
|
import javax.swing.JPanel;
|
|
|
|
import javax.swing.JTabbedPane;
|
|
|
|
import javax.swing.SwingConstants;
|
|
|
|
|
2008-10-10 14:59:01 -04:00
|
|
|
import net.sourceforge.filebot.ResourceManager;
|
2007-12-23 14:28:04 -05:00
|
|
|
import net.sourceforge.filebot.ui.FileBotPanel;
|
2008-03-19 18:14:38 -04:00
|
|
|
import net.sourceforge.filebot.ui.FileTransferableMessageHandler;
|
2007-12-23 14:28:04 -05:00
|
|
|
import net.sourceforge.filebot.ui.panel.analyze.tools.SplitPanel;
|
|
|
|
import net.sourceforge.filebot.ui.panel.analyze.tools.ToolPanel;
|
|
|
|
import net.sourceforge.filebot.ui.panel.analyze.tools.TypePanel;
|
2008-03-19 18:14:38 -04:00
|
|
|
import net.sourceforge.tuned.MessageBus;
|
2007-12-23 14:28:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
public class AnalyzePanel extends FileBotPanel {
|
|
|
|
|
2008-03-19 18:14:38 -04:00
|
|
|
private final FileTreePanel fileTreePanel = new FileTreePanel();
|
|
|
|
private final JTabbedPane toolsPanel = new JTabbedPane(SwingConstants.TOP, JTabbedPane.SCROLL_TAB_LAYOUT);
|
|
|
|
|
|
|
|
private final List<ToolPanel> toolPanels = new ArrayList<ToolPanel>();
|
2007-12-23 14:28:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
public AnalyzePanel() {
|
|
|
|
super("Analyze", ResourceManager.getIcon("panel.analyze"));
|
|
|
|
|
|
|
|
Box panel = new Box(BoxLayout.X_AXIS);
|
|
|
|
|
2008-03-19 18:14:38 -04:00
|
|
|
panel.add(fileTreePanel);
|
2007-12-23 14:28:04 -05:00
|
|
|
|
|
|
|
panel.add(Box.createHorizontalStrut(50));
|
|
|
|
|
|
|
|
JPanel right = new JPanel();
|
|
|
|
right.setLayout(new BorderLayout());
|
|
|
|
right.setBorder(BorderFactory.createTitledBorder("Tools"));
|
|
|
|
|
|
|
|
right.add(toolsPanel, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
panel.add(right);
|
|
|
|
|
|
|
|
add(panel, BorderLayout.CENTER);
|
|
|
|
|
2008-03-19 18:14:38 -04:00
|
|
|
Dimension min = new Dimension(300, 300);
|
|
|
|
fileTreePanel.setMinimumSize(min);
|
|
|
|
toolsPanel.setMinimumSize(min);
|
2007-12-23 14:28:04 -05:00
|
|
|
|
2008-03-19 18:14:38 -04:00
|
|
|
addTool(new TypePanel());
|
2008-03-24 14:08:41 -04:00
|
|
|
addTool(new SplitPanel());
|
2007-12-23 14:28:04 -05:00
|
|
|
|
2008-03-19 18:14:38 -04:00
|
|
|
fileTreePanel.getFileTree().addPropertyChangeListener(FileTree.CONTENT_PROPERTY, fileTreeChangeListener);
|
|
|
|
|
2008-07-30 18:37:01 -04:00
|
|
|
MessageBus.getDefault().addMessageHandler(getPanelName(), new FileTransferableMessageHandler(this, fileTreePanel.getFileTree().getTransferablePolicy()));
|
2008-03-19 18:14:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void addTool(ToolPanel toolPanel) {
|
|
|
|
toolsPanel.addTab(toolPanel.getToolName(), toolPanel);
|
|
|
|
toolPanels.add(toolPanel);
|
2007-12-23 14:28:04 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
private PropertyChangeListener fileTreeChangeListener = new PropertyChangeListener() {
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
public void propertyChange(PropertyChangeEvent evt) {
|
|
|
|
List<File> files = (List<File>) evt.getNewValue();
|
|
|
|
|
2008-03-19 18:14:38 -04:00
|
|
|
for (ToolPanel toolPanel : toolPanels) {
|
2007-12-23 14:28:04 -05:00
|
|
|
toolPanel.update(files);
|
2008-03-19 18:14:38 -04:00
|
|
|
}
|
2007-12-23 14:28:04 -05:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|