/* 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.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JToggleButton; import javax.swing.ListSelectionModel; import javax.swing.WindowConstants; import javax.swing.border.EmptyBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import org.jwildfire.base.Prefs; import org.jwildfire.swing.JWildfire; public class BatchFlameRendererInternalFrame extends JInternalFrame { private TinaController tinaController; private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JPanel batchRenderPanel = null; private JScrollPane renderBatchJobsScrollPane = null; private JTable renderBatchJobsTable = null; private JButton batchRenderAddFilesButton = null; private JButton batchRenderFilesMoveUpButton = null; private JButton batchRenderFilesMoveDownButton = null; private JProgressBar batchRenderJobProgressBar = null; private JProgressBar batchRenderTotalProgressBar = null; private JButton batchRenderFilesRemoveButton = null; private JButton batchRenderFilesRemoveAllButton = null; private JLabel batchRenderJobProgressLbl = null; private JLabel batchRenderTotalProgressLbl = null; private JButton batchRenderStartButton = null; public BatchFlameRendererInternalFrame() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(600, 620); this.setFont(Prefs.getPrefs().getFont("Dialog", Font.PLAIN, 10)); this.setLocation(new Point(200 + JWildfire.DEFAULT_WINDOW_LEFT, 50 + JWildfire.DEFAULT_WINDOW_TOP)); this.setClosable(true); this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setIconifiable(true); this.setTitle("Batch flame renderer"); 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(getBatchRenderPanel(), BorderLayout.CENTER); } return jContentPane; } /** * This method initializes batchRenderPanel * * @return javax.swing.JPanel */ private JPanel getBatchRenderPanel() { if (batchRenderPanel == null) { batchRenderPanel = new JPanel(); batchRenderPanel.setLayout(new BorderLayout(0, 0)); JPanel panel_1 = new JPanel(); panel_1.setBorder(new EmptyBorder(10, 10, 10, 10)); batchRenderPanel.add(panel_1); panel_1.setLayout(new BorderLayout(0, 0)); JPanel panel_2 = new JPanel(); panel_2.setPreferredSize(new Dimension(160, 10)); panel_1.add(panel_2, BorderLayout.EAST); panel_2.setLayout(new BoxLayout(panel_2, BoxLayout.Y_AXIS)); panel_2.add(getBatchPreviewRootPanel()); panel_2.add(getBatchRenderAddFilesButton()); panel_2.add(getPanel_20()); panel_2.add(getBatchRenderFilesMoveDownButton()); panel_2.add(getBatchRenderFilesMoveUpButton()); panel_2.add(getPanel_21()); panel_2.add(getBatchRenderFilesRemoveButton()); panel_2.add(getBatchRenderFilesRemoveAllButton()); panel_2.add(getPanel_22()); batchResolutionProfileCmb = new JComboBox(); batchResolutionProfileCmb.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (tinaController != null) { tinaController.getBatchRendererController().batchRendererResolutionProfileCmb_changed(); } } }); batchResolutionProfileCmb.setMinimumSize(new Dimension(159, 24)); batchResolutionProfileCmb.setMaximumSize(new Dimension(159, 24)); panel_2.add(batchResolutionProfileCmb); batchResolutionProfileCmb.setPreferredSize(new Dimension(159, 24)); batchResolutionProfileCmb.setMaximumRowCount(32); batchResolutionProfileCmb.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchQualityProfileCmb = new JComboBox(); panel_2.add(batchQualityProfileCmb); batchQualityProfileCmb.setMinimumSize(new Dimension(159, 24)); batchQualityProfileCmb.setMaximumSize(new Dimension(159, 24)); batchQualityProfileCmb.setPreferredSize(new Dimension(159, 24)); batchQualityProfileCmb.setMaximumRowCount(32); batchQualityProfileCmb.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); JPanel panel_8 = new JPanel(); panel_8.setMaximumSize(new Dimension(159, 56)); panel_2.add(panel_8); panel_8.setLayout(null); batchRenderOverrideCBx = new JCheckBox("Overwrite images"); batchRenderOverrideCBx.setBounds(4, 4, 149, 18); panel_8.add(batchRenderOverrideCBx); batchRenderOverrideCBx.setToolTipText("Overwrite already rendered images"); enableOpenClBtn = new JToggleButton(); enableOpenClBtn.setToolTipText("Use the external GPU-renderer for rendering, may not work for all flames, but is much faster"); enableOpenClBtn.setText("GPU"); enableOpenClBtn.setPreferredSize(new Dimension(72, 24)); enableOpenClBtn.setFont(new Font("Dialog", Font.BOLD, 10)); enableOpenClBtn.setBounds(0, 24, 160, 24); enableOpenClBtn.setIcon(new ImageIcon(getClass().getResource("/org/jwildfire/swing/icons/new/opencl.png"))); panel_8.add(enableOpenClBtn); JPanel panel_9 = new JPanel(); panel_9.setMaximumSize(new Dimension(159, 36)); panel_2.add(panel_9); batchRenderShowImageBtn = new JButton(); batchRenderShowImageBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getBatchRendererController().showImageBtn_clicked(); } }); batchRenderShowImageBtn.setToolTipText("Show rendered image (if there is one)"); batchRenderShowImageBtn.setText("Show image"); batchRenderShowImageBtn.setPreferredSize(new Dimension(159, 24)); batchRenderShowImageBtn.setMinimumSize(new Dimension(159, 12)); batchRenderShowImageBtn.setMaximumSize(new Dimension(159, 24)); batchRenderShowImageBtn.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderShowImageBtn.setAlignmentX(0.5f); panel_2.add(batchRenderShowImageBtn); JPanel panel_3 = new JPanel(); panel_3.setPreferredSize(new Dimension(10, 100)); panel_1.add(panel_3, BorderLayout.SOUTH); panel_3.setLayout(new BoxLayout(panel_3, BoxLayout.X_AXIS)); panel_3.add(getPanel_25()); panel_3.add(getPanel_26()); panel_3.add(getBatchRenderStartButton()); panel_1.add(getRenderBatchJobsScrollPane(), BorderLayout.CENTER); } return batchRenderPanel; } private JComboBox batchQualityProfileCmb; private JComboBox batchResolutionProfileCmb; private JWFNumberField swfAnimatorFramesPerSecondREd; private JWFNumberField swfAnimatorFrameREd; private JPanel panel_20; private JPanel panel_21; private JPanel panel_22; private JPanel panel_23; private JPanel panel_24; private JPanel panel_25; private JPanel panel_26; private JPanel batchPreviewRootPanel; private JCheckBox batchRenderOverrideCBx; private JButton batchRenderShowImageBtn; private JToggleButton enableOpenClBtn; /** * This method initializes renderBatchJobsScrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getRenderBatchJobsScrollPane() { if (renderBatchJobsScrollPane == null) { renderBatchJobsScrollPane = new JScrollPane(); renderBatchJobsScrollPane.setViewportView(getRenderBatchJobsTable()); } return renderBatchJobsScrollPane; } /** * This method initializes renderBatchJobsTable * * @return javax.swing.JTable */ JTable getRenderBatchJobsTable() { if (renderBatchJobsTable == null) { renderBatchJobsTable = new JTable(); renderBatchJobsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); renderBatchJobsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { tinaController.getBatchRendererController().renderBatchJobsTableClicked(); } } }); } return renderBatchJobsTable; } /** * This method initializes batchRenderAddFilesButton * * @return javax.swing.JButton */ JButton getBatchRenderAddFilesButton() { if (batchRenderAddFilesButton == null) { batchRenderAddFilesButton = new JButton(); batchRenderAddFilesButton.setAlignmentX(Component.CENTER_ALIGNMENT); batchRenderAddFilesButton.setSize(new Dimension(159, 24)); batchRenderAddFilesButton.setMinimumSize(new Dimension(159, 24)); batchRenderAddFilesButton.setMaximumSize(new Dimension(159, 24)); batchRenderAddFilesButton.setPreferredSize(new Dimension(125, 24)); batchRenderAddFilesButton.setText("Add files"); batchRenderAddFilesButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderAddFilesButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { tinaController.getBatchRendererController().batchRenderAddFilesButton_clicked(); } }); } return batchRenderAddFilesButton; } /** * This method initializes batchRenderFilesMoveUpButton * * @return javax.swing.JButton */ JButton getBatchRenderFilesMoveUpButton() { if (batchRenderFilesMoveUpButton == null) { batchRenderFilesMoveUpButton = new JButton(); batchRenderFilesMoveUpButton.setAlignmentX(Component.CENTER_ALIGNMENT); batchRenderFilesMoveUpButton.setMinimumSize(new Dimension(159, 24)); batchRenderFilesMoveUpButton.setMaximumSize(new Dimension(159, 24)); batchRenderFilesMoveUpButton.setPreferredSize(new Dimension(159, 24)); batchRenderFilesMoveUpButton.setText("Move up"); batchRenderFilesMoveUpButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderFilesMoveUpButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { tinaController.getBatchRendererController().batchRenderFilesMoveUpButton_clicked(); } }); } return batchRenderFilesMoveUpButton; } /** * This method initializes batchRenderFilesMoveDownButton * * @return javax.swing.JButton */ JButton getBatchRenderFilesMoveDownButton() { if (batchRenderFilesMoveDownButton == null) { batchRenderFilesMoveDownButton = new JButton(); batchRenderFilesMoveDownButton.setAlignmentX(Component.CENTER_ALIGNMENT); batchRenderFilesMoveDownButton.setSize(new Dimension(159, 24)); batchRenderFilesMoveDownButton.setMinimumSize(new Dimension(159, 24)); batchRenderFilesMoveDownButton.setMaximumSize(new Dimension(159, 24)); batchRenderFilesMoveDownButton.setPreferredSize(new Dimension(159, 24)); batchRenderFilesMoveDownButton.setText("Move down"); batchRenderFilesMoveDownButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderFilesMoveDownButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { tinaController.getBatchRendererController().batchRenderFilesMoveDownButton_clicked(); } }); } return batchRenderFilesMoveDownButton; } /** * This method initializes batchRenderJobProgressBar * * @return javax.swing.JProgressBar */ JProgressBar getBatchRenderJobProgressBar() { if (batchRenderJobProgressBar == null) { batchRenderJobProgressBar = new JProgressBar(); batchRenderJobProgressBar.setValue(0); batchRenderJobProgressBar.setPreferredSize(new Dimension(568, 21)); batchRenderJobProgressBar.setStringPainted(true); } return batchRenderJobProgressBar; } /** * This method initializes batchRenderTotalProgressBar * * @return javax.swing.JProgressBar */ JProgressBar getBatchRenderTotalProgressBar() { if (batchRenderTotalProgressBar == null) { batchRenderTotalProgressBar = new JProgressBar(); batchRenderTotalProgressBar.setValue(0); batchRenderTotalProgressBar.setPreferredSize(new Dimension(568, 21)); batchRenderTotalProgressBar.setStringPainted(true); } return batchRenderTotalProgressBar; } /** * This method initializes batchRenderFilesRemoveButton * * @return javax.swing.JButton */ JButton getBatchRenderFilesRemoveButton() { if (batchRenderFilesRemoveButton == null) { batchRenderFilesRemoveButton = new JButton(); batchRenderFilesRemoveButton.setAlignmentX(Component.CENTER_ALIGNMENT); batchRenderFilesRemoveButton.setMinimumSize(new Dimension(159, 12)); batchRenderFilesRemoveButton.setMaximumSize(new Dimension(159, 24)); batchRenderFilesRemoveButton.setPreferredSize(new Dimension(159, 24)); batchRenderFilesRemoveButton.setText("Remove"); batchRenderFilesRemoveButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderFilesRemoveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { tinaController.getBatchRendererController().batchRenderFilesRemoveButton_clicked(); } }); } return batchRenderFilesRemoveButton; } /** * This method initializes batchRenderFilesRemoveAllButton * * @return javax.swing.JButton */ JButton getBatchRenderFilesRemoveAllButton() { if (batchRenderFilesRemoveAllButton == null) { batchRenderFilesRemoveAllButton = new JButton(); batchRenderFilesRemoveAllButton.setAlignmentX(Component.CENTER_ALIGNMENT); batchRenderFilesRemoveAllButton.setMinimumSize(new Dimension(159, 24)); batchRenderFilesRemoveAllButton.setMaximumSize(new Dimension(159, 24)); batchRenderFilesRemoveAllButton.setPreferredSize(new Dimension(159, 24)); batchRenderFilesRemoveAllButton.setText("Remove All"); batchRenderFilesRemoveAllButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderFilesRemoveAllButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { tinaController.getBatchRendererController().batchRenderFilesRemoveAllButton_clicked(); } }); } return batchRenderFilesRemoveAllButton; } /** * This method initializes batchRenderStartButton * * @return javax.swing.JButton */ JButton getBatchRenderStartButton() { if (batchRenderStartButton == null) { batchRenderStartButton = new JButton(); batchRenderStartButton.setMinimumSize(new Dimension(159, 52)); batchRenderStartButton.setMaximumSize(new Dimension(159, 59)); batchRenderStartButton.setPreferredSize(new Dimension(159, 52)); batchRenderStartButton.setText("Render"); batchRenderStartButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); batchRenderStartButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { tinaController.getBatchRendererController().batchRenderStartButton_clicked(); } }); } return batchRenderStartButton; } public JComboBox getBatchQualityProfileCmb() { return batchQualityProfileCmb; } public JComboBox getBatchResolutionProfileCmb() { return batchResolutionProfileCmb; } public JWFNumberField getSwfAnimatorFramesPerSecondREd() { return swfAnimatorFramesPerSecondREd; } public JWFNumberField getSwfAnimatorFrameREd() { return swfAnimatorFrameREd; } private JPanel getPanel_20() { if (panel_20 == null) { panel_20 = new JPanel(); panel_20.setMaximumSize(new Dimension(159, 32)); } return panel_20; } private JPanel getPanel_21() { if (panel_21 == null) { panel_21 = new JPanel(); panel_21.setMaximumSize(new Dimension(159, 32)); } return panel_21; } private JPanel getPanel_22() { if (panel_22 == null) { panel_22 = new JPanel(); panel_22.setMaximumSize(new Dimension(32767, 32)); panel_22.setLayout(null); JLabel lblGlobalSettings = new JLabel(); lblGlobalSettings.setText("Global settings:"); lblGlobalSettings.setPreferredSize(new Dimension(100, 22)); lblGlobalSettings.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); lblGlobalSettings.setAlignmentX(1.0f); lblGlobalSettings.setBounds(6, 16, 100, 14); panel_22.add(lblGlobalSettings); } return panel_22; } private JPanel getPanel_23() { if (panel_23 == null) { panel_23 = new JPanel(); panel_23.setPreferredSize(new Dimension(10, 28)); panel_23.setMinimumSize(new Dimension(10, 28)); panel_23.setMaximumSize(new Dimension(32767, 28)); panel_23.setLayout(new BoxLayout(panel_23, BoxLayout.X_AXIS)); batchRenderJobProgressLbl = new JLabel(); batchRenderJobProgressLbl.setMinimumSize(new Dimension(100, 0)); panel_23.add(batchRenderJobProgressLbl); batchRenderJobProgressLbl.setPreferredSize(new Dimension(100, 22)); batchRenderJobProgressLbl.setText("Job progress"); batchRenderJobProgressLbl.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_23.add(getBatchRenderJobProgressBar()); } return panel_23; } private JPanel getPanel_24() { if (panel_24 == null) { panel_24 = new JPanel(); panel_24.setPreferredSize(new Dimension(10, 28)); panel_24.setMinimumSize(new Dimension(10, 28)); panel_24.setMaximumSize(new Dimension(32767, 28)); panel_24.setLayout(new BoxLayout(panel_24, BoxLayout.X_AXIS)); batchRenderTotalProgressLbl = new JLabel(); batchRenderTotalProgressLbl.setMinimumSize(new Dimension(100, 0)); panel_24.add(batchRenderTotalProgressLbl); batchRenderTotalProgressLbl.setPreferredSize(new Dimension(100, 22)); batchRenderTotalProgressLbl.setText("Total progress"); batchRenderTotalProgressLbl.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_24.add(getBatchRenderTotalProgressBar()); } return panel_24; } private JPanel getPanel_25() { if (panel_25 == null) { panel_25 = new JPanel(); panel_25.setLayout(new BoxLayout(panel_25, BoxLayout.Y_AXIS)); panel_25.add(getPanel_23()); panel_25.add(getPanel_24()); } return panel_25; } private JPanel getPanel_26() { if (panel_26 == null) { panel_26 = new JPanel(); panel_26.setPreferredSize(new Dimension(6, 10)); panel_26.setMinimumSize(new Dimension(6, 10)); panel_26.setMaximumSize(new Dimension(6, 32767)); } return panel_26; } JPanel getBatchPreviewRootPanel() { if (batchPreviewRootPanel == null) { batchPreviewRootPanel = new JPanel(); batchPreviewRootPanel.setMaximumSize(new Dimension(32767, 120)); batchPreviewRootPanel.setLayout(new BorderLayout(0, 0)); } return batchPreviewRootPanel; } public JCheckBox getBatchRenderOverrideCBx() { return batchRenderOverrideCBx; } public JButton getBatchRenderShowImageBtn() { return batchRenderShowImageBtn; } public void setTinaController(TinaController tinaController) { this.tinaController = tinaController; } public JToggleButton getEnableOpenClBtn() { return enableOpenClBtn; } }