Package org.eclipse.gef.examples.logicdesigner.edit

Source Code of org.eclipse.gef.examples.logicdesigner.edit.GateEditPart

/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.gef.examples.logicdesigner.edit;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import org.eclipse.draw2d.ConnectionAnchor;
import org.eclipse.draw2d.IFigure;

import org.eclipse.gef.AccessibleAnchorProvider;

import org.eclipse.gef.examples.logicdesigner.figures.AndGateFigure;
import org.eclipse.gef.examples.logicdesigner.figures.GateFigure;
import org.eclipse.gef.examples.logicdesigner.figures.OrGateFigure;
import org.eclipse.gef.examples.logicdesigner.figures.OutputFigure;
import org.eclipse.gef.examples.logicdesigner.figures.XOrGateFigure;
import org.eclipse.gef.examples.logicdesigner.model.AndGate;
import org.eclipse.gef.examples.logicdesigner.model.OrGate;
import org.eclipse.gef.examples.logicdesigner.model.XORGate;

/**
* EditPart for holding gates in the Logic Example.
*/
public class GateEditPart
  extends OutputEditPart
{

/**
* Returns a newly created Figure of this.
*
* @return A new Figure of this.
*/
protected IFigure createFigure() {
  OutputFigure figure;
  if (getModel() == null)
    return null;
  if (getModel() instanceof OrGate
    figure = new OrGateFigure();
  else if (getModel() instanceof AndGate)
    figure = new AndGateFigure();
  else if (getModel() instanceof XORGate)
    figure = new XOrGateFigure();
  else
    figure = new GateFigure();
  return figure;
}

public Object getAdapter(Class key) {
  if (key == AccessibleAnchorProvider.class)
    return new DefaultAccessibleAnchorProvider() {
      public List getSourceAnchorLocations() {
        List list = new ArrayList();
        Vector sourceAnchors = getNodeFigure().getSourceConnectionAnchors();
        for (int i=0; i<sourceAnchors.size(); i++) {
          ConnectionAnchor anchor = (ConnectionAnchor)sourceAnchors.get(i);
          list.add(anchor.getReferencePoint().getTranslated(0, -3));
        }
        return list;
      }
      public List getTargetAnchorLocations() {
        List list = new ArrayList();
        Vector targetAnchors = getNodeFigure().getTargetConnectionAnchors();
        for (int i=0; i<targetAnchors.size(); i++) {
          ConnectionAnchor anchor = (ConnectionAnchor)targetAnchors.get(i);
          list.add(anchor.getReferencePoint());
        }
        return list;
      }
    };
  return super.getAdapter(key);
}

}
TOP

Related Classes of org.eclipse.gef.examples.logicdesigner.edit.GateEditPart

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.