Package org.eclipse.gef.examples.logicdesigner.model

Source Code of org.eclipse.gef.examples.logicdesigner.model.LogicDiagram$ConnectionRouterLabelProvider

/*******************************************************************************
* 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.model;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.eclipse.swt.graphics.Image;

import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;

import org.eclipse.draw2d.PositionConstants;

import org.eclipse.gef.examples.logicdesigner.LogicMessages;

public class LogicDiagram
  extends LogicSubpart
{
static final long serialVersionUID = 1;

public static String ID_ROUTER = "router"//$NON-NLS-1$
public static Integer ROUTER_MANUAL = new Integer(0);
public static Integer ROUTER_MANHATTAN = new Integer(1);
public static Integer ROUTER_SHORTEST_PATH = new Integer(2);
private static int count;
private static Image LOGIC_ICON = createImage(LogicDiagram.class, "icons/circuit16.gif"); //$NON-NLS-1$


protected List children = new ArrayList();
protected LogicRuler leftRuler, topRuler;
protected Integer connectionRouter = null;
private boolean rulersVisibility = false;
private boolean snapToGeometry = false;
private boolean gridEnabled = false;
private double zoom = 1.0;

public LogicDiagram() {
  size.width = 100;
  size.height= 100;
  location.x = 20;
  location.y = 20;
  createRulers();
}

public void addChild(LogicElement child){
  addChild(child, -1);
}

public void addChild(LogicElement child, int index){
  if (index >= 0)
    children.add(index,child);
  else
    children.add(child);
  fireChildAdded(CHILDREN, child, new Integer(index));
}

protected void createRulers() {
  leftRuler = new LogicRuler(false);
  topRuler = new LogicRuler(true);
}

public List getChildren(){
  return children;
}

public Integer getConnectionRouter(){
  if(connectionRouter==null)
    connectionRouter = ROUTER_MANUAL;
  return connectionRouter;
}

public Image getIconImage() {
  return LOGIC_ICON;
}

public String getNewID() {
  return Integer.toString(count++);
}

public double getZoom() {
  return zoom;
}

/**
* Returns <code>null</code> for this model. Returns
* normal descriptors for all subclasses.
*
* @return  Array of property descriptors.
*/
public IPropertyDescriptor[] getPropertyDescriptors() {
  if(getClass().equals(LogicDiagram.class)){
    ComboBoxPropertyDescriptor cbd = new ComboBoxPropertyDescriptor(
        ID_ROUTER,
        LogicMessages.PropertyDescriptor_LogicDiagram_ConnectionRouter,
        new String[]{
          LogicMessages.PropertyDescriptor_LogicDiagram_Manual,
          LogicMessages.PropertyDescriptor_LogicDiagram_Manhattan,
          LogicMessages.PropertyDescriptor_LogicDiagram_ShortestPath});
    cbd.setLabelProvider(new ConnectionRouterLabelProvider());
    return new IPropertyDescriptor[]{cbd};
  }
  return super.getPropertyDescriptors();
}

public Object getPropertyValue(Object propName) {
  if(propName.equals(ID_ROUTER))
    return connectionRouter;
  return super.getPropertyValue(propName);
}

public LogicRuler getRuler(int orientation) {
  LogicRuler result = null;
  switch (orientation) {
    case PositionConstants.NORTH :
      result = topRuler;
      break;
    case PositionConstants.WEST :
      result = leftRuler;
      break;
  }
  return result;
}

public boolean getRulerVisibility() {
  return rulersVisibility;
}

public boolean isGridEnabled() {
  return gridEnabled;
}

public boolean isSnapToGeometryEnabled() {
  return snapToGeometry;
}

private void readObject(java.io.ObjectInputStream s)
    throws IOException, ClassNotFoundException {
  s.defaultReadObject();
}
public void removeChild(LogicElement child){
  children.remove(child);
  fireChildRemoved(CHILDREN, child);
}

public void setConnectionRouter(Integer router){
  Integer oldConnectionRouter = connectionRouter;
  connectionRouter = router;
  firePropertyChange(ID_ROUTER, oldConnectionRouter, connectionRouter);
}

public void setPropertyValue(Object id, Object value){
  if(ID_ROUTER.equals(id))
    setConnectionRouter((Integer)value);
  else super.setPropertyValue(id,value);
}

public void setRulerVisibility(boolean newValue) {
  rulersVisibility = newValue;
}

public void setGridEnabled(boolean isEnabled) {
  gridEnabled = isEnabled;
}

public void setSnapToGeometry(boolean isEnabled) {
  snapToGeometry = isEnabled;
}

public void setZoom(double zoom) {
  this.zoom = zoom;
}

public String toString(){
  return LogicMessages.LogicDiagram_LabelText;
}

private class ConnectionRouterLabelProvider
  extends org.eclipse.jface.viewers.LabelProvider{

  public ConnectionRouterLabelProvider(){
    super();
  }
  public String getText(Object element){
    if(element instanceof Integer){
      Integer integer = (Integer)element;
      if(ROUTER_MANUAL.intValue()==integer.intValue())
        return LogicMessages.PropertyDescriptor_LogicDiagram_Manual;
      if(ROUTER_MANHATTAN.intValue()==integer.intValue())
        return LogicMessages.PropertyDescriptor_LogicDiagram_Manhattan;
      if(ROUTER_SHORTEST_PATH.intValue()==integer.intValue())
        return LogicMessages.PropertyDescriptor_LogicDiagram_ShortestPath;
    }
    return super.getText(element);
  }
}

}
TOP

Related Classes of org.eclipse.gef.examples.logicdesigner.model.LogicDiagram$ConnectionRouterLabelProvider

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.