/*
* @(#)CommonGui
*
* Copyright (c) 2004-2008 by dvb.matt, All Rights Reserved.
*
* This file is part of ProjectX, a free Java based demux utility.
* By the authors, ProjectX is intended for educational purposes only,
* as a non-commercial test project.
*
*
* 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 2 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 net.sourceforge.dvb.projectx.gui;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import net.sourceforge.dvb.projectx.gui.X_JFileChooser;
import net.sourceforge.dvb.projectx.gui.PicturePanel;
import net.sourceforge.dvb.projectx.gui.FileProperties;
import net.sourceforge.dvb.projectx.gui.CollectionProperties;
import net.sourceforge.dvb.projectx.gui.PatchDialog;
import net.sourceforge.dvb.projectx.gui.CutPanel;
import net.sourceforge.dvb.projectx.gui.PlayerFrame;
import net.sourceforge.dvb.projectx.gui.SubpictureFrame;
import net.sourceforge.dvb.projectx.common.Resource;
/**
*
*/
public class CommonGui extends Object {
private static JFrame frame = null;
private static Object suggestion = null;
private static X_JFileChooser chooser;
private static CutPanel cutpanel;
private static PicturePanel picturepanel;
private static FileProperties file_properties;
private static CollectionProperties collection_properties;
private static PatchDialog patch_dialog = null;
private static PlayerFrame player_frame = null;
private static SubpictureFrame subpicture_frame = null;
/**
*
*/
public CommonGui()
{
chooser = new X_JFileChooser();
picturepanel = new PicturePanel();
cutpanel = new CutPanel();
file_properties = new FileProperties();
collection_properties = new CollectionProperties();
}
public static void setMainFrame(JFrame _frame)
{
frame = _frame;
}
/**
*
*/
public static String getUserInput(String arg1)
{
return getUserInput(arg1, null);
}
/**
*
*/
public static String getUserInput(String arg1, String arg2)
{
Object obj = getUserInput(arg1, arg2, suggestion);
if (obj != null)
{
suggestion = obj;
return obj.toString();
}
return null;
}
/**
* user dialog field filled with suggestion
* by 'mcr42' 2005/06/16
*/
public static String getUserInput(String arg1, String arg2, Object arg3)
{
return getUserInput(null, arg1, arg2, arg3);
}
/**
*
*/
public static String getUserInput(JFrame _frame, String arg1, String arg2, Object arg3)
{
if (_frame == null)
_frame = frame;
Object obj = JOptionPane.showInputDialog(_frame, arg1, arg2, JOptionPane.QUESTION_MESSAGE, null, null, arg3);
if (obj != null)
return obj.toString();
return null;
}
/**
*
*/
public static boolean getUserConfirmation(String arg1)
{
int option = JOptionPane.showConfirmDialog(frame, arg1);
if (option == JOptionPane.YES_OPTION)
return true;
return false;
}
/**
*
*/
public static void showErrorMessageDialog(Object message, String title)
{
JOptionPane.showMessageDialog(null, message, title, JOptionPane.ERROR_MESSAGE);
}
/**
*
*/
public static void showMessageDialog(Object message, String title)
{
JOptionPane.showMessageDialog(null, message, title, JOptionPane.INFORMATION_MESSAGE);
}
/**
* Sets a button's text and mnemonic values using the specified resource
* key. The button text is scanned for &. If found the character after it is
* used as menmonic.
*
* @param button
* the button (e.g. a menu or menu item) to localize
* @param key
* the resource string to find
*/
public static final void localize(AbstractButton button, String key)
{
String text = Resource.getString(key);
int pos = text.indexOf('&');
if (pos != -1)
{
char mnemonic = text.charAt(pos + 1);
button.setMnemonic(mnemonic);
text = text.substring(0, pos) + text.substring(pos + 1);
}
button.setText(text);
}
/**
* Loads an image as ImageIcon.
*
* @param iconName
* @return ImageIcon
*/
public static ImageIcon loadIcon(String iconName)
{
return new ImageIcon(Resource.getResourceURL(iconName));
}
/**
*
*/
public static X_JFileChooser getMainFileChooser()
{
return chooser;
}
/**
*
*/
public static PicturePanel getPicturePanel()
{
return picturepanel;
}
/**
*
*/
public static CutPanel getCutPanel()
{
return cutpanel;
}
/**
*
*/
public static FileProperties getFileProperties()
{
return file_properties;
}
/**
*
*/
public static CollectionProperties getCollectionProperties()
{
return collection_properties;
}
/**
*
*/
public static PatchDialog getPatchDialog()
{
if (patch_dialog == null)
patch_dialog = new PatchDialog(frame);
return patch_dialog;
}
/**
*
*/
public static PlayerFrame getPlayerFrame()
{
if (player_frame == null)
player_frame = new PlayerFrame();
return player_frame;
}
/**
*
*/
public static SubpictureFrame getSubpictureFrame()
{
if (subpicture_frame == null)
subpicture_frame = new SubpictureFrame();
return subpicture_frame;
}
}