/*
JWildfire - an image and animation processor written in Java
Copyright (C) 1995-2016 Andreas Maschke
This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
General Public License as published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this software;
if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jwildfire.create.tina.swing;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.WindowConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import org.jwildfire.base.Prefs;
import org.jwildfire.swing.JWildfire;
public class FlameBrowserInternalFrame extends JInternalFrame {
private TinaController tinaController;
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
public FlameBrowserInternalFrame() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(800, 600);
this.setFont(Prefs.getPrefs().getFont("Dialog", Font.PLAIN, 10));
this.setLocation(new Point(JWildfire.DEFAULT_WINDOW_LEFT + 160, JWildfire.DEFAULT_WINDOW_TOP + 80));
this.setClosable(true);
this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
this.setIconifiable(true);
this.setTitle("Flame browser");
this.setVisible(false);
this.setResizable(true);
this.setMaximizable(false);
this.setContentPane(getJContentPane());
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.setFont(Prefs.getPrefs().getFont("Dialog", Font.PLAIN, 10));
jContentPane.setSize(new Dimension(1097, 617));
jContentPane.add(getPanel_72(), BorderLayout.CENTER);
}
return jContentPane;
}
private JPanel panel_72;
private JPanel flameBrowserRootTopPanel;
private JPanel flameBrowserRootBottomPanel;
private JPanel flameBrowserTreePanel;
private JPanel flameBrowserDetailPanel;
private JPanel flameBrowserImagesPanel;
private JScrollPane flameBrowserTreeScrollPane;
private JTree flameBrowserTree;
private JButton flameBrowserRefreshBtn;
private JButton flameBrowserToEditorBtn;
private JButton flameBrowserDeleteBtn;
private JButton flameBrowserRenameBtn;
private JButton flameBrowserChangeFolderBtn;
private JButton flameBrowserToBatchRendererBtn;
private JButton flameBrowserCopyToBtn;
private JButton flameBrowserMoveToBtn;
private JButton flameBrowserToMeshGenBtn;
private JPanel getPanel_72() {
if (panel_72 == null) {
panel_72 = new JPanel();
panel_72.setLayout(new BorderLayout(0, 0));
panel_72.add(getFlameBrowserRootTopPanel(), BorderLayout.NORTH);
panel_72.add(getFlameBrowserRootBottomPanel(), BorderLayout.CENTER);
}
return panel_72;
}
private JPanel getFlameBrowserRootTopPanel() {
if (flameBrowserRootTopPanel == null) {
flameBrowserRootTopPanel = new JPanel();
flameBrowserRootTopPanel.setBorder(new EmptyBorder(4, 4, 4, 4));
flameBrowserRootTopPanel.setPreferredSize(new Dimension(10, 36));
flameBrowserRootTopPanel.setLayout(new BorderLayout(0, 0));
flameBrowserRootTopPanel.add(getFlameBrowserRefreshBtn(), BorderLayout.WEST);
flameBrowserRootTopPanel.add(getFlameBrowserChangeFolderBtn());
}
return flameBrowserRootTopPanel;
}
private JPanel getFlameBrowserRootBottomPanel() {
if (flameBrowserRootBottomPanel == null) {
flameBrowserRootBottomPanel = new JPanel();
flameBrowserRootBottomPanel.setLayout(new BorderLayout(0, 0));
flameBrowserRootBottomPanel.add(getFlameBrowserTreePanel(), BorderLayout.WEST);
flameBrowserRootBottomPanel.add(getFlameBrowserDetailPanel(), BorderLayout.EAST);
flameBrowserRootBottomPanel.add(getFlameBrowserImagesPanel(), BorderLayout.CENTER);
}
return flameBrowserRootBottomPanel;
}
private JPanel getFlameBrowserTreePanel() {
if (flameBrowserTreePanel == null) {
flameBrowserTreePanel = new JPanel();
flameBrowserTreePanel.setPreferredSize(new Dimension(200, 10));
flameBrowserTreePanel.setLayout(new BorderLayout(0, 0));
flameBrowserTreePanel.add(getFlameBrowserTreeScrollPane(), BorderLayout.CENTER);
}
return flameBrowserTreePanel;
}
private JPanel getFlameBrowserDetailPanel() {
if (flameBrowserDetailPanel == null) {
flameBrowserDetailPanel = new JPanel();
flameBrowserDetailPanel.setPreferredSize(new Dimension(120, 10));
flameBrowserDetailPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
flameBrowserDetailPanel.add(getFlameBrowserToEditorBtn());
flameBrowserDetailPanel.add(getFlameBrowserToBatchRendererBtn());
flameBrowserDetailPanel.add(getFlameBrowserToMeshGenBtn());
flameBrowserDetailPanel.add(getFlameBrowserDeleteBtn());
flameBrowserDetailPanel.add(getFlameBrowserRenameBtn());
flameBrowserDetailPanel.add(getFlameBrowserCopyToBtn());
flameBrowserDetailPanel.add(getFlameBrowserMoveToBtn());
}
return flameBrowserDetailPanel;
}
JPanel getFlameBrowserImagesPanel() {
if (flameBrowserImagesPanel == null) {
flameBrowserImagesPanel = new JPanel();
flameBrowserImagesPanel.setLayout(new BorderLayout(0, 0));
}
return flameBrowserImagesPanel;
}
private JScrollPane getFlameBrowserTreeScrollPane() {
if (flameBrowserTreeScrollPane == null) {
flameBrowserTreeScrollPane = new JScrollPane();
flameBrowserTreeScrollPane.setViewportView(getFlameBrowserTree());
}
return flameBrowserTreeScrollPane;
}
JTree getFlameBrowserTree() {
if (flameBrowserTree == null) {
flameBrowserTree = new JTree();
flameBrowserTree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
if (tinaController != null) {
tinaController.getFlameBrowserController().flamesTree_changed();
}
}
});
}
return flameBrowserTree;
}
JButton getFlameBrowserRefreshBtn() {
if (flameBrowserRefreshBtn == null) {
flameBrowserRefreshBtn = new JButton();
flameBrowserRefreshBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().refreshBtn_clicked();
}
});
flameBrowserRefreshBtn.setText("Refresh");
flameBrowserRefreshBtn.setPreferredSize(new Dimension(192, 24));
flameBrowserRefreshBtn.setMnemonic(KeyEvent.VK_R);
flameBrowserRefreshBtn.setMinimumSize(new Dimension(100, 46));
flameBrowserRefreshBtn.setMaximumSize(new Dimension(32000, 46));
flameBrowserRefreshBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserRefreshBtn;
}
JButton getFlameBrowserToEditorBtn() {
if (flameBrowserToEditorBtn == null) {
flameBrowserToEditorBtn = new JButton();
flameBrowserToEditorBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().toEditorBtn_clicked();
}
});
flameBrowserToEditorBtn.setToolTipText("Copy the current fractal into the Editor");
flameBrowserToEditorBtn.setText("To Editor");
flameBrowserToEditorBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserToEditorBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserToEditorBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserToEditorBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserToEditorBtn;
}
JButton getFlameBrowserDeleteBtn() {
if (flameBrowserDeleteBtn == null) {
flameBrowserDeleteBtn = new JButton();
flameBrowserDeleteBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().deleteBtn_clicked();
}
});
flameBrowserDeleteBtn.setToolTipText("Delete the currently selected flame");
flameBrowserDeleteBtn.setText("Delete");
flameBrowserDeleteBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserDeleteBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserDeleteBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserDeleteBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserDeleteBtn;
}
JButton getFlameBrowserRenameBtn() {
if (flameBrowserRenameBtn == null) {
flameBrowserRenameBtn = new JButton();
flameBrowserRenameBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().renameBtn_clicked();
}
});
flameBrowserRenameBtn.setToolTipText("Rename the currently selected flame");
flameBrowserRenameBtn.setText("Rename...");
flameBrowserRenameBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserRenameBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserRenameBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserRenameBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserRenameBtn;
}
JButton getFlameBrowserChangeFolderBtn() {
if (flameBrowserChangeFolderBtn == null) {
flameBrowserChangeFolderBtn = new JButton();
flameBrowserChangeFolderBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().changeFolderBtn_clicked();
}
});
flameBrowserChangeFolderBtn.setText("Change folder...");
flameBrowserChangeFolderBtn.setPreferredSize(new Dimension(125, 46));
flameBrowserChangeFolderBtn.setMnemonic(KeyEvent.VK_F);
flameBrowserChangeFolderBtn.setMinimumSize(new Dimension(100, 46));
flameBrowserChangeFolderBtn.setMaximumSize(new Dimension(32000, 46));
flameBrowserChangeFolderBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserChangeFolderBtn;
}
JButton getFlameBrowserToBatchRendererBtn() {
if (flameBrowserToBatchRendererBtn == null) {
flameBrowserToBatchRendererBtn = new JButton();
flameBrowserToBatchRendererBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().toBatchRendererBtn_clicked();
}
});
flameBrowserToBatchRendererBtn.setToolTipText("Schedule the current fractal for rendering in the Batch Renderer");
flameBrowserToBatchRendererBtn.setText("To Batch Renderer");
flameBrowserToBatchRendererBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserToBatchRendererBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserToBatchRendererBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserToBatchRendererBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserToBatchRendererBtn;
}
JButton getFlameBrowserCopyToBtn() {
if (flameBrowserCopyToBtn == null) {
flameBrowserCopyToBtn = new JButton();
flameBrowserCopyToBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().copyToBtnClicked();
}
});
flameBrowserCopyToBtn.setToolTipText("Copy the currently selected flame into another directory");
flameBrowserCopyToBtn.setText("Copy to...");
flameBrowserCopyToBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserCopyToBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserCopyToBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserCopyToBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserCopyToBtn;
}
JButton getFlameBrowserMoveToBtn() {
if (flameBrowserMoveToBtn == null) {
flameBrowserMoveToBtn = new JButton();
flameBrowserMoveToBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().moveToBtnClicked();
}
});
flameBrowserMoveToBtn.setToolTipText("Move the currently selected flame to another directory");
flameBrowserMoveToBtn.setText("Move to...");
flameBrowserMoveToBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserMoveToBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserMoveToBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserMoveToBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserMoveToBtn;
}
JButton getFlameBrowserToMeshGenBtn() {
if (flameBrowserToMeshGenBtn == null) {
flameBrowserToMeshGenBtn = new JButton();
flameBrowserToMeshGenBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tinaController.getFlameBrowserController().toMeshGenBtn_clicked();
}
});
flameBrowserToMeshGenBtn.setToolTipText("Import this flame into the 3DMesh Generator module");
flameBrowserToMeshGenBtn.setText("To Mesh Gen");
flameBrowserToMeshGenBtn.setPreferredSize(new Dimension(112, 24));
flameBrowserToMeshGenBtn.setMinimumSize(new Dimension(100, 24));
flameBrowserToMeshGenBtn.setMaximumSize(new Dimension(32000, 24));
flameBrowserToMeshGenBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10));
}
return flameBrowserToMeshGenBtn;
}
public void setTinaController(TinaController tinaController) {
this.tinaController = tinaController;
}
}