Package edu.stanford.genetics.treeview.plugin.karyoview

Source Code of edu.stanford.genetics.treeview.plugin.karyoview.KaryoscopeFactory

/*
* Created on Aug 15, 2005
*
* Copyright Alok Saldnaha, all rights reserved.
*/
package edu.stanford.genetics.treeview.plugin.karyoview;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JFrame;

import edu.stanford.genetics.treeview.ConfigNode;
import edu.stanford.genetics.treeview.MainPanel;
import edu.stanford.genetics.treeview.PluginFactory;
import edu.stanford.genetics.treeview.SettingsPanelHolder;
import edu.stanford.genetics.treeview.TabbedSettingsPanel;
import edu.stanford.genetics.treeview.TreeviewMenuBarI;
import edu.stanford.genetics.treeview.ViewFrame;
import edu.stanford.genetics.treeview.core.PluginManager;

/**
* @author aloksaldanha
*
*/
public class KaryoscopeFactory extends PluginFactory {
  private static KaryoColorPresets colorPresets = new KaryoColorPresets();
  private static CoordinatesPresets coordPresets = new CoordinatesPresets();
  private static KaryoColorPresetEditor  cpresetEditor = null;
  private static CoordinatesPresetEditor  coordEditor = null;
  private JFrame cpresetFrame = null;
  private TabbedSettingsPanel tabbedPanel;
  static {
    PluginManager.registerPlugin(new KaryoscopeFactory());
  }

  /* (non-Javadoc)
   * @see edu.stanford.genetics.treeview.PluginFactory#getPluginName()
   */
  public String getPluginName() {
    return "Karyoscope";
  }

  /* (non-Javadoc)
   * @see edu.stanford.genetics.treeview.PluginFactory#restorePlugin(edu.stanford.genetics.treeview.ConfigNode, edu.stanford.genetics.treeview.ViewFrame)
   */
  public MainPanel restorePlugin(ConfigNode node, ViewFrame viewFrame) {
    KaryoPanel karyoPanel = new KaryoPanel(viewFrame.getDataModel(),
        viewFrame.getGeneSelection(), viewFrame, node);
    karyoPanel.setName(getPluginName());
    return karyoPanel;
  }
 
  public KaryoscopeFactory() {
    super();
    cpresetEditor = new KaryoColorPresetEditor(colorPresets);
    cpresetEditor.setTitle("Karyoscope Color Presets");
    coordEditor  = new CoordinatesPresetEditor(coordPresets);
    coordEditor.setTitle("Karyoscope Coordinates Presets");
  }

  /* (non-Javadoc)
   * @see edu.stanford.genetics.treeview.PluginFactory#setGlobalNode(edu.stanford.genetics.treeview.ConfigNode)
   */
  public void setGlobalNode(ConfigNode node) {
    super.setGlobalNode(node);
   
    colorPresets.bindConfig(node.fetchOrCreate("ColorPresets"));
    if (colorPresets.getNumPresets() == 0) {
      colorPresets.addDefaultPresets();
    }
    cpresetEditor.synchronizeFrom();
    /*
    coordPresets.bindConfig(node.fetchOrCreate("CoordPresets"));
    if (coordPresets.getNumPresets() == 0) {
      coordPresets.addDefaultPresets();
    }
    coordEditor.synchronizeFrom();
    */
  }

 
  /* (non-Javadoc)
   * @see edu.stanford.genetics.treeview.PluginFactory#addPluginConfig(java.awt.Menu)
   */
  public void addPluginConfig(TreeviewMenuBarI globalMenu, final ViewFrame frame) {
    super.addPluginConfig(globalMenu, frame);
    globalMenu.addMenuItem("Karyoscope Color...", new ActionListener() {
      public void actionPerformed(ActionEvent actionEvent) {
        if (cpresetFrame == null) {
          setupPresetsFrame(frame.getApp().getGlobalConfig().getRoot());
        }
        tabbedPanel.setSelectedComponent(cpresetEditor);
        cpresetFrame.setVisible(true);
      }
    });
    globalMenu.setMnemonic(KeyEvent.VK_K);

    if (coordPresets.getNumPresets() == 0) {
      try {
        coordPresets.scanUrl(new URL(frame.getApp().getCodeBase().toString() +"/coordinates"));
      } catch (MalformedURLException e) {
        e.printStackTrace();
      }
      coordEditor.synchronizeFrom();
    }
   
    globalMenu.addMenuItem("Karyoscope Coordinates...", new ActionListener() {
      public void actionPerformed(ActionEvent actionEvent) {
        if (cpresetFrame == null) {
          setupPresetsFrame(frame.getApp().getGlobalConfig().getRoot());
        }
        tabbedPanel.setSelectedComponent(coordEditor);
        cpresetFrame.setVisible(true);
      }
    });
    globalMenu.setMnemonic(KeyEvent.VK_O);   
  }
  /**
   *
   * @param frame ViewFrame that contains relevant global config node
   */
  private void setupPresetsFrame(ConfigNode node) {
    tabbedPanel = new TabbedSettingsPanel();
    tabbedPanel.addSettingsPanel("Color", cpresetEditor);
    tabbedPanel.addSettingsPanel("Coordinates", coordEditor);
   
    cpresetFrame = new JFrame("Karyoscope Presets");
    SettingsPanelHolder holder =
      new SettingsPanelHolder(cpresetFrame, node);
    holder.addSettingsPanel(tabbedPanel);
    cpresetFrame.getContentPane().add(holder);
    cpresetFrame.pack();
  }
 
  /**
   * mechanism by which KaryoPanel can access the presets.
   * @return color presets for dendrogram view
   */
  public static KaryoColorPresets getColorPresets() {
    return colorPresets;
  }
  /**
   * mechanism by which KaryoPanel can access the presets.
   * @return color presets for dendrogram view
   */
  public static CoordinatesPresets getCoordinatesPresets() {
    return coordPresets;
  }
  /** returns JPanel that allowed editing of coordinates presets */
  public static CoordinatesPresetEditor getCoordinatesPresetsEditor() {
    return coordEditor;
  }

  public boolean configurePlugin(ConfigNode node, ViewFrame viewFrame) {
    return true;
  }
}
TOP

Related Classes of edu.stanford.genetics.treeview.plugin.karyoview.KaryoscopeFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.