EditableGroupDemo.java :  » Natural-Language-Processing » Stanford-CoreNLP » com » jgraph » example » groupeditor » Java Open Source

Java Open Source » Natural Language Processing » Stanford CoreNLP 
Stanford CoreNLP » com » jgraph » example » groupeditor » EditableGroupDemo.java
package com.jgraph.example.groupeditor;

import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

import org.jgraph.JGraph;
import org.jgraph.graph.VertexView;

import com.jgraph.example.GraphEdX;
import com.jgraph.example.GraphEdXMenuBar;

/**
 * A demo based on GraphEdX that demonstrates a simple way of allowing the user
 * to edit cells inside groups or the groups themselves. NB: in order to have the
 * edit button displayed in the top layer (not shadowed by child cells), we need
 * to display them on the border away from the child cells. To do that, we
 * assume we groups have larger bounds than the union of their child cells, a
 * feauture implemented in GraphEdX in the group method.
 * 
 * Remark: using a click system rather than this button system wouldn't work
 * because the click count is already used to traverse the cell selection.
 * 
 * @author rvalyi
 */
public class EditableGroupDemo extends GraphEdX {

  /**
   * References the folding manager.
   */
  protected GroupManager foldingManager;

  // Override parent method
  protected void installListeners(JGraph graph) {
    super.installListeners(graph);
    // Adds redirector for group collapse/expand
    foldingManager = new GroupManager();
    graph.addMouseListener(foldingManager);
  }

  protected void uninstallListeners(JGraph graph) {
    super.uninstallListeners(graph);
    graph.removeMouseListener(foldingManager);
  }

  /**
   * Constructs a new application
   */
  public EditableGroupDemo() {
    // Overrides the global vertex renderer
    VertexView.renderer = new EditableGroupRenderer();

    // Prepares layout actions
    setJMenuBar(new GraphEdXMenuBar(this, graphFactory));
    // Initializes actions states
    valueChanged(null);
  }

  /**
   * Main method
   */
  public static void main(String[] args) {
    try {
      // Construct Frame
      JFrame frame = new JFrame("GraphEdX");
      // Set Close Operation to Exit
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      // Add an Editor Panel
      GraphEdX app = new EditableGroupDemo();
      frame.getContentPane().add(app);
      // Fetch URL to Icon Resource
      URL jgraphUrl = GraphEdX.class.getClassLoader().getResource(
          "org/jgraph/example/resources/jgraph.gif");
      // If Valid URL
      if (jgraphUrl != null) {
        // Load Icon
        ImageIcon jgraphIcon = new ImageIcon(jgraphUrl);
        // Use in Window
        frame.setIconImage(jgraphIcon.getImage());
      }
      // Set Default Size
      frame.setSize(640, 480);
      // Show Frame
      frame.setVisible(true);
      app.init();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.