Package org.eclipse.sapphire.ui.diagram.layout

Source Code of org.eclipse.sapphire.ui.diagram.layout.ConnectionHashKey

/******************************************************************************
* Copyright (c) 2014 Oracle
* 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:
*    Shenxue Zhou - initial implementation and ongoing maintenance
******************************************************************************/

package org.eclipse.sapphire.ui.diagram.layout;

import org.eclipse.sapphire.Element;
import org.eclipse.sapphire.ui.diagram.DiagramConnectionPart;
import org.eclipse.sapphire.ui.diagram.editor.DiagramNodePart;
import org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPagePart;
import org.eclipse.sapphire.ui.diagram.internal.StandardEmbeddedConnectionPart;

/**
* @author <a href="mailto:shenxue.zhou@oracle.com">Shenxue Zhou</a>
*/

public class ConnectionHashKey
{
  private String nodeId, connectionId;

  private ConnectionHashKey(String nodeId, String connectionId)
  {
    this.nodeId = nodeId;
    this.connectionId = connectionId;
  }

  public boolean equals(Object object)
  {
    boolean isEqual = false;
    ConnectionHashKey hashKey;

    if (object instanceof ConnectionHashKey)
    {
      hashKey = (ConnectionHashKey) object;
      String nodeId = hashKey.getNodeId();
      String connectionId = hashKey.getConnectionId();
      boolean nodeIdEqual = (nodeId == null && this.nodeId == null) ||
          (nodeId != null && this.nodeId != null && nodeId.equals(this.nodeId));
      boolean connIdEqual = connectionId.equals(this.connectionId);
      isEqual = nodeIdEqual && connIdEqual;
    }
    return isEqual;
  }

  public String getNodeId()
  {
    return this.nodeId;
  }

  public String getConnectionId()
  {
    return this.connectionId;
  }

  public int hashCode()
  {
    if (this.nodeId != null)
    {
      return this.nodeId.hashCode() ^ this.connectionId.hashCode();
    }
    else
    {
      return this.connectionId.hashCode();
    }
  }
 
  public static ConnectionHashKey createKey(final DiagramConnectionPart connPart)
  {
    SapphireDiagramEditorPagePart diagramPart = connPart.nearest(SapphireDiagramEditorPagePart.class);
    String connId = connPart.getId();
    String nodeId = null;
    if (connPart instanceof StandardEmbeddedConnectionPart)
    {
      Element srcElement = connPart.getEndpoint1();
      DiagramNodePart nodePart = diagramPart.getDiagramNodePart(srcElement);
      nodeId = nodePart.getId();
    }
    ConnectionHashKey hashKey = new ConnectionHashKey(nodeId, connId);
    return hashKey;   
  }
 
  public static ConnectionHashKey createKey(final String nodeId, final String connId)
  {
    return new ConnectionHashKey(nodeId, connId);
  }
}
TOP

Related Classes of org.eclipse.sapphire.ui.diagram.layout.ConnectionHashKey

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.