-
tjc authored
git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@5483 ee4ac58c-ac51-4696-9907-e4b3aa274f04
tjc authoredgit-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@5483 ee4ac58c-ac51-4696-9907-e4b3aa274f04
Utilities.java 5.46 KiB
/* Utilities.java
*
* created: Tue Sep 18 2001
*
* This file is part of Artemis
*
* Copyright(C) 2001 Genome Research Limited
*
* 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.
*
* $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/Utilities.java,v 1.4 2007-02-22 19:45:18 tjc Exp $
*/
package uk.ac.sanger.artemis.components;
import uk.ac.sanger.artemis.util.InputStreamProgressListener;
import uk.ac.sanger.artemis.EntrySourceVector;
import uk.ac.sanger.artemis.Options;
import java.awt.*;
import java.net.MalformedURLException;
import javax.swing.*;
/**
* Utilities methods used by the uk.ac.sanger.artemis.components package.
*
* @author Kim Rutherford <kmr@sanger.ac.uk>
* @version $Id: Utilities.java,v 1.4 2007-02-22 19:45:18 tjc Exp $
**/
public class Utilities
{
/**
* Return the JFrame that contains the given component.
**/
public static JFrame getComponentFrame(final JComponent component)
{
if(component.getTopLevelAncestor() instanceof JFrame)
return(JFrame) component.getTopLevelAncestor();
else
return null;
}
/**
* Move the given JFrame to the centre of the screen.
**/
public static void centreFrame(final JFrame frame)
{
final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
final int x_position =(screen.width - frame.getSize().width) / 2;
int y_position =(screen.height - frame.getSize().height) / 2;
if(y_position < 10)
y_position = 10;
frame.setLocation(new Point(x_position, y_position));
}
/**
* Move the given JFrame to the right of the screen.
**/
public static void rightJustifyFrame(final JFrame frame)
{
final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int y_position =(screen.height - frame.getSize().height) / 2;
if(y_position < 10)
y_position = 10;
frame.setLocation(new Point(0, y_position));
}
/**
* Move the given JFrame to the centre of the screen.
**/
public static void centreJustifyFrame(final JFrame frame, final int y_position)
{
final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
final int x_position =(screen.width - frame.getSize().width) / 2;
frame.setLocation(new Point(x_position, y_position));
}
/**
* Find the parent Frame of the given component and re-centre it on the
* screen.
**/
public static void centreOwningFrame(final JComponent component)
{
final JFrame frame = getComponentFrame(component);
centreFrame(frame);
}
/**
* Test to find if this is a multi-display/device environment
* @return true if multiple displays found
*/
public static boolean isMultiDisplay()
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
if(ge.getScreenDevices().length>1)
return true;
return false;
}
/**
* Returns a Vector containing the possible Entry sources for this
* application.
* @param frame The component that is creating the EntrySource objects.
* (Used for requesters.)
* @param listener InputStreamProgressEvent objects will be sent to this
* listener as progress on reading is made.
**/
public static EntrySourceVector getEntrySources(final JFrame frame,
final InputStreamProgressListener listener)
{
final EntrySourceVector return_vector = new EntrySourceVector();
return_vector.add(new FileDialogEntrySource(frame, listener));
return_vector.add(new DbfetchEntrySource(frame));
// return_vector.add(new BioJavaEntrySource());
// this doesn't work on a v1.2 system so it is taken out with perl when
// necessary
// CORBA_START_MARKER
// The location of the IOR for the corba server at EMBL. Can be
// overridden using the options file.
final String embl_ior_url =
Options.getOptions().getProperty("embl_ior_url");
if(embl_ior_url != null)
{
try
{
return_vector.add(new EMBLCorbaEntrySource(frame, embl_ior_url));
}
catch(MalformedURLException e)
{
new MessageDialog(frame, "the url given for the embl database is " +
"badly formatted: " + e.getMessage());
}
}
// The location of the IOR for the pathogens group read-write corba
// server.
final String db_ior_url =
Options.getOptions().getProperty("db_ior_url");
if(db_ior_url != null)
{
try
{
return_vector.add(new WritableEMBLCorbaEntrySource(frame,
db_ior_url));
}
catch(MalformedURLException e)
{
new MessageDialog(frame, "the url given for the embl database is " +
"badly formatted: " + e.getMessage());
}
}
// CORBA_END_MARKER
return return_vector;
}
}