/* Copyright (C) 2011 Diego Darriba, David Posada This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package es.uvigo.darwin.jmodeltest.gui; import java.awt.Color; import java.awt.Font; import java.awt.Point; import java.io.PrintStream; import java.net.URL; import java.util.Calendar; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextPane; import javax.swing.UIManager; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import es.uvigo.darwin.jmodeltest.ModelTest; import es.uvigo.darwin.jmodeltest.io.DocumentOutputStream; import es.uvigo.darwin.jmodeltest.io.TextOutputStream; import es.uvigo.darwin.jmodeltest.utilities.Utilities; public class XManager { private static XManager instance; public static final Font FONT_CONSOLE, FONT_LABEL, FONT_MENU, FONT_STATUS, FONT_SLIDER, FONT_LABEL_BIG, FONT_TABULAR; public static final Color LABEL_BLUE_COLOR = new Color(102,102,153); public static final Color LABEL_FAIL_COLOR = new Color(153, 0, 0); public static final Color LABEL_GREEN_COLOR = new Color(0, 153, 0); public static final Color PANEL_BORDER_COLOR = new Color(153, 153, 153); public static final Color MENU_COLOR = new Color(130,130,150);//(199, 199, 220); public static final Color MENU_FG_COLOR = new Color(0,0,0); public static final Color PANE_BACK_COLOR = Color.WHITE; public static final Color INNER_BORDER_COLOR = new Color(182,182,182); //182 public static final Color OUTER_BORDER_COLOR = new Color(89,89,89); //89 public static final Color DARK_GRAY_COLOR = new Color(89,89,89); //89 public static final Color STATUS_BACK_COLOR = new Color(220,220,220); //220 public static final Point MAIN_LOCATION = new Point(281, 80); public static SimpleAttributeSet blueText; public static SimpleAttributeSet redText; public static SimpleAttributeSet blackText; public FrameMain frame; public FrameResults resultsFrame; private FramePreferences preferencesFrame; public static boolean resultsFrameBuilt = false; private JTextPane PANE; static { if (Utilities.isWindows() == false) { FONT_CONSOLE = new Font(Font.MONOSPACED, 0, 12); } else { FONT_CONSOLE = new Font("Lucida Console", 0, 12); } FONT_LABEL = new Font("Application", 1, 10); FONT_LABEL_BIG = new Font("Application", 0, 12); FONT_SLIDER = new Font("Application", 1, 9); FONT_MENU = new Font("Dialog", 0, 9); FONT_STATUS = new Font("Dialog", 0, 9); FONT_TABULAR = new java.awt.Font("Verdana", 0, 12); blackText = new SimpleAttributeSet(); redText = new SimpleAttributeSet(); blueText = new SimpleAttributeSet(); StyleConstants.setForeground(blueText, Color.blue); StyleConstants.setForeground(redText, Color.red); StyleConstants.setForeground(blackText, Color.black); } private XManager() { try { try { UIManager.setLookAndFeel(UIManager .getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } frame = new FrameMain(); frame.initComponents(); frame.setVisible(true); PANE = frame.getMainEditorPane(); ModelTest.setMainConsole(new TextOutputStream(new PrintStream( new DocumentOutputStream(PANE.getDocument())))); ModelTest.setCurrentOutStream(ModelTest.getMainConsole()); ModelTest.printHeader(ModelTest.getMainConsole()); ModelTest.printNotice(ModelTest.getMainConsole()); ModelTest.printCitation(ModelTest.getMainConsole()); // check expiration date // CheckExpiration (frame); } catch (Exception e) { e.printStackTrace(); } } /**************************** * CheckExpiration*************************** * Checks for expiration and * quits if needed * * * ***********************************************************************/ public static void CheckExpiration(JFrame theframe) { java.util.Calendar now = java.util.Calendar.getInstance(); if ((now.get(Calendar.MONTH) != Calendar.JUNE && now.get(Calendar.MONTH) != Calendar.DECEMBER) || now.get(Calendar.YEAR) != 2007) { JOptionPane.showMessageDialog(theframe, "Program has expired! \n Bye...", "jModelTest warning", JOptionPane.WARNING_MESSAGE); theframe.dispose(); System.exit(0); } } public void setPane(JTextPane pane) { PANE = pane; } public JTextPane getPane() { return PANE; } /**************************** * buildFrameResults **************************** * Builds the frame that * displays the model selection results * * ************************************************************************/ public void buildFrameResults() { try { if (resultsFrameBuilt) { resultsFrame.dispose(); } resultsFrame = new FrameResults(); resultsFrame.initComponents(); resultsFrame.setVisible(false); resultsFrameBuilt = true; } catch (Exception e) { e.printStackTrace(); } } public static XManager getInstance() { if (instance == null) { instance = new XManager(); } return instance; } public void loadFramePreferences() { if (preferencesFrame == null) { preferencesFrame = new FramePreferences(); } preferencesFrame.setVisible(true); } public void setLikeLabelText(String text) { frame.setLikeLabelText(text); } public void setDataLabelText(String text) { frame.setDataLabelText(text); } public void setLikeLabelColor(Color color) { frame.setLikeLabelColor(color); } public void enableMenuAIC(boolean enabled) { frame.enableMenuAIC(enabled); } public void enableMenuBIC(boolean enabled) { frame.enableMenuBIC(enabled); } public void enableMenuDT(boolean enabled) { frame.enableMenuDT(enabled); } public void enableMenuhLRT(boolean enabled) { frame.enableMenuhLRT(enabled); } public void enableMenuAveraging(boolean enabled) { frame.enableMenuAveraging(enabled); } public void enableMenuShowModelTable(boolean enabled) { frame.enableMenuShowModelTable(enabled); } public void enableMenuHtmlOutput(boolean enabled) { frame.enableMenuHtmlOutput(enabled); } public void selectedMenuResultsBLasParameters(boolean selected) { frame.selectedMenuResultsBLasParameters(selected); } public static ImageIcon makeIcon(String imageName, String altText) { //Look for the image. String imgLocation = "icons/" + imageName + ".gif"; URL imageURL = XManager.class.getResource(imgLocation); ImageIcon icon = null; if (imageURL != null) { icon = new ImageIcon(imageURL, altText); } return icon; } public static JButton makeIconButton(String imageName, String toolTipText, String altText) { ImageIcon icon = makeIcon(imageName, altText); //Create and initialize the button. JButton button = new JButton(); button.setToolTipText(toolTipText); button.setLayout(null); button.setOpaque(false); button.setSize(20,20); button.setVisible(true); if (icon != null) { //image found button.setIcon(icon); } else { //no image found button.setText(altText); } return button; } }