package org.eurocarbdb.application.glycoworkbench.plugin.s3; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.util.Collection; import java.util.Vector; import javax.swing.JFrame; import javax.swing.SwingUtilities; import org.eurocarbdb.application.glycanbuilder.GlycanAction; import org.eurocarbdb.application.glycanbuilder.ICON_SIZE; import org.eurocarbdb.application.glycanbuilder.ThemeManager; import org.eurocarbdb.application.glycoworkbench.GlycoWorkbench; import org.eurocarbdb.application.glycoworkbench.plugin.AbstractPlugin; import org.jets3t.service.S3ServiceException; public class S3Plugin extends AbstractPlugin implements ActionListener{ public static final String SHOW_S3_MANAGER="showS3Manager"; public static final String S3_PLUGIN_NAME="S3 Plugin"; public Cockpit s3Manager; public JFrame s3ManagerFrame; public S3Plugin(GlycoWorkbench application) { super(application); //for (Window window : Window.getWindows()) { //SwingUtilities.updateComponentTreeUI(window); //} try { s3ManagerFrame=new JFrame("S3Manager"); this.s3Manager=new Cockpit(s3ManagerFrame); //s3ManagerFrame.setVisible(true); } catch (S3ServiceException ex) { // TODO Auto-generated catch block ex.printStackTrace(); } } @Override public Collection<GlycanAction> getActions() { Vector<GlycanAction> actions = new Vector<GlycanAction>(); actions.add( new GlycanAction( SHOW_S3_MANAGER, ThemeManager.getResizableEmptyIcon(ICON_SIZE.L3), "Display the S3 manager", KeyEvent.VK_C, "", this ) ); return actions; } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String actionName=GlycanAction.getAction(e); if(actionName.equals(SHOW_S3_MANAGER)){ this.s3ManagerFrame.setVisible(true); if(!this.s3Manager.isLoggedIn()){ SwingUtilities.invokeLater(new Runnable(){ public void run(){ s3Manager.loginEvent(null); } }); } } } @Override public String getName(){ return S3_PLUGIN_NAME; } @Override public void completeSetup(){ } }