Skip to content
Snippets Groups Projects
Select Git revision
  • d3c61407079c9802551e677edec2fb43a6631997
  • master default
  • dev_general
  • 0.1.5
  • 0.1.4
  • 0.1.3
  • 0.1.2
  • 0.1.1
8 results

MainPanel.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    MainPanel.java 2.54 KiB
    package de.hhu.ba.yoshikoWrapper.gui;
    
    import java.awt.Component;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.Icon;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import org.cytoscape.application.swing.CytoPanelComponent;
    import org.cytoscape.application.swing.CytoPanelName;
    
    import de.hhu.ba.yoshikoWrapper.core.YoshikoLoader;
    import de.hhu.ba.yoshikoWrapper.swig.LibraryInterface;
    
    /**This class describes the Swing Panel that the user interacts with in cytoscape
     * @author Philipp Spohr, Aug 6, 2017
     *
     */
    public class MainPanel extends JPanel implements CytoPanelComponent {
    
    	/**
    	 * Unique identifier for serialization
    	 */
    	private static final long serialVersionUID = 6214827920591046457L;
    	
    	//SYMBOLIC LINKS
    	private YoshikoLoader yoshikoInterface = YoshikoLoader.getInstance();
    	private MainPanel self = this; //for lambda function references
    	//SWING COMPONENTS
    	
    	private LibStatusPanel libStatusPanel;
    	private JButton searchLibButton;
    	private JLabel yoshikoVersionLabel;
    
    	/**
    	 * Main constructor, creates a new Panel and intializes subcomponents
    	 */
    	public MainPanel() {
    		
    		//SWING COMPONENT INITIALIZATION
    		
    		libStatusPanel = new LibStatusPanel();
    		libStatusPanel.setStyle(yoshikoInterface.isLibraryLoaded());
    		this.add(libStatusPanel);
    		
    		searchLibButton = new JButton("SHOW YOSHIKO LIB");
    		searchLibButton.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				final YLibChooser c = new YLibChooser();
    				int returnVal = c.showOpenDialog(self);
    				if (returnVal == JFileChooser.APPROVE_OPTION) {
    					yoshikoInterface.loadLibrary(c.getSelectedFile().getAbsolutePath());
    				}
    				libStatusPanel.setStyle(yoshikoInterface.isLibraryLoaded());
    				yoshikoVersionLabel.setText(LibraryInterface.getVersionString());
    			}
    			
    		});
    		this.add(searchLibButton);
    		
    		yoshikoVersionLabel = new JLabel("YOSHIKO VERSION");
    		this.add(yoshikoVersionLabel);
    		
    		this.setVisible(true);
    	}
    
    
    	public Component getComponent() {
    		return this;
    	}
    
    
    	/* (non-Javadoc)
    	 * @see org.cytoscape.application.swing.CytoPanelComponent#getCytoPanelName()
    	 */
    	public CytoPanelName getCytoPanelName() {
    		//By convention most plugins that provide a "toolbox"-like interface use the WEST orientation
    		return CytoPanelName.WEST;
    	}
    
    	public String getTitle() {
    		//TODO: Be creative I guess
    		return "Yoshiko Wrapper Panel";
    	}
    
    
    	public Icon getIcon() {
    		//TODO: 
    		return null;
    	}
    }