Package org.eclipse.sapphire.ui.diagram

Examples of org.eclipse.sapphire.ui.diagram.DiagramConnectionPart


public final class SqlSchemaConnectionService extends StandardConnectionService
{
    @Override
    public DiagramConnectionPart connect( final DiagramNodePart node1, final DiagramNodePart node2, final String connectionType )
    {
        final DiagramConnectionPart fkConnectionPart = super.connect( node1, node2, connectionType );
        final ForeignKey fk = (ForeignKey) fkConnectionPart.getLocalModelElement();
       
        final Table referencedTable = fk.getReferencedTable().target();
       
        if( referencedTable != null )
        {
            for( final Column column : referencedTable.getColumns() )
            {
                if( column.isPartOfPrimaryKey().content() )
                {
                    fk.getColumnAssociations().insert().setReferencedColumn( column.getName().content() );
                }
            }
        }
       
        if( ! fk.getColumnAssociations().isEmpty() )
        {
            // Make an intelligent guess on local columns by looking for a prefix naming pattern.
           
            final Table table = (Table) fk.parent().element();
            final List<String> prefixes = new ArrayList<String>();
            final String firstReferencedColumnName = fk.getColumnAssociations().get( 0 ).getReferencedColumn().content();
           
            for( final Column column : table.getColumns() )
            {
                final String localColumnName = column.getName().content();
               
                if( localColumnName != null && localColumnName.endsWith( firstReferencedColumnName ) )
                {
                    prefixes.add( localColumnName.substring( 0, localColumnName.length() - firstReferencedColumnName.length() ) );
                }
            }
           
            for( final String prefix : prefixes )
            {
                boolean match = true;
               
                for( final ForeignKey.ColumnAssociation association : fk.getColumnAssociations() )
                {
                    final Column candidateLocalColumn = find( table.getColumns(), prefix + association.getReferencedColumn().content() );
                   
                    if( candidateLocalColumn == null || ! equal( candidateLocalColumn.getType().content(), association.getReferencedColumn().target().getType().content() ) )
                    {
                        match = false;
                        break;
                    }
                }
               
                if( match )
                {
                    for( final ForeignKey.ColumnAssociation association : fk.getColumnAssociations() )
                    {
                        association.setLocalColumn( prefix + association.getReferencedColumn().content() );
                    }
                   
                    break;
                }
            }
        }
       
        final SapphireWizard<ForeignKey> wizard = new SapphireWizard<ForeignKey>( fk, DefinitionLoader.sdef( SqlSchemaEditor.class ).wizard( "DefineForeignKeyWizard" ) )
        {
            @Override
            public boolean performCancel()
            {
                fkConnectionPart.remove();
                return true;
            }
        };
       
        final WizardDialog dialog = new WizardDialog( Display.getDefault().getActiveShell(), wizard );
View Full Code Here


        // load the embedded connection layout
        ElementList<ComponentDependency> dependencies = component.getDependencies();
       
        for (ComponentDependency dependency : dependencies)
        {
          DiagramConnectionPart connPart = getConnectionPart(connService, dependency);
          if (connPart != null)
          {           
            ElementList<ConnectionBendpoint> bendpoints = dependency.getConnectionBendpoints();
            if (bendpoints.size() > 0)
            {
              int index = 0;
              for (ConnectionBendpoint bendpoint : bendpoints)
              {
                connPart.addBendpoint(index++, bendpoint.getX().content(),
                    bendpoint.getY().content());
              }             
            }
          }
        }       
      }
    }
   
    // Listen on existing connection parts
    for (DiagramConnectionPart connPart : connService.list())
    {
      connPart.attach(this.connectionPartListener);
    }
   
  }
View Full Code Here

  }
 
  private void handleConnectionBendpointChange(ComponentDependency componentDependency)
  {
    ConnectionService connService = context(SapphireDiagramEditorPagePart.class).service(ConnectionService.class);
    DiagramConnectionPart connPart = getConnectionPart(connService, componentDependency);
    if (connPart != null)
    {
      List<Point> bendpoints = new ArrayList<Point>();
      for (ConnectionBendpoint bendpoint : componentDependency.getConnectionBendpoints())
      {
        bendpoints.add(new Point(bendpoint.getX().content(), bendpoint.getY().content()));
      }
      connPart.resetBendpoints(bendpoints);
    }
  }
View Full Code Here

      }
  }

    protected void handleConnectionAddEvent(ConnectionAddEvent event)
    {
    DiagramConnectionPart connPart = event.part();

    connPart.attach(this.connectionPartListener);
    DiagramConnectionInfo connectionInfo = read(connPart);
    if (connectionInfo != null)
    {
      connPart.resetBendpoints(connectionInfo.getBendPoints());
    }     
  }
View Full Code Here

    protected Object run(Presentation context)
    {
        ISapphirePart part = context.part();
        if (part instanceof DiagramConnectionPart)
        {
            DiagramConnectionPart connPart = (DiagramConnectionPart)part;
            connPart.remove();  
        }
        else if (part instanceof DiagramNodePart)
        {
            DiagramNodePart nodePart = (DiagramNodePart)part;
            deleteNode(nodePart);
        }
        else if (part instanceof ShapePart)
        {
            ShapePart shapePart = (ShapePart)part;
            deleteShapePart(shapePart);
        }
        else if (part instanceof SapphireDiagramEditorPagePart)
        {
          SapphireDiagramEditorPagePart pagePart = (SapphireDiagramEditorPagePart)part;
          List<ISapphirePart> parts = new ArrayList<ISapphirePart>();
          parts.addAll(pagePart.getSelections());
          for (ISapphirePart selectedPart : parts)
          {
            if (selectedPart instanceof DiagramConnectionPart)
            {
                    DiagramConnectionPart connPart = (DiagramConnectionPart)selectedPart;
                    connPart.remove();               
            }
                else if (selectedPart instanceof DiagramNodePart)
                {
                    DiagramNodePart nodePart = (DiagramNodePart)selectedPart;
                    deleteNode(nodePart);
View Full Code Here

   
  @Override
  public void init(SapphireAction action, ActionHandlerDef def) {
    super.init(action, def);

      DiagramConnectionPart part = (DiagramConnectionPart) getPart();
    part.attach(new Listener() {
      @Override
      public void handle(final Event e) {
                if( e instanceof SelectionChangedEvent ) {
                    broadcast( new EnablementChangedEvent() );
                } else if (e instanceof ConnectionBendpointsEvent) {
View Full Code Here

    this.connectionPartListener = new FilteredListener<ConnectionEvent>()
    {
      @Override
      protected void handleTypedEvent(ConnectionEvent event)
      {
        DiagramConnectionPart connPart = (DiagramConnectionPart)event.part();
        if (event instanceof ConnectionLabelEvent)
        {
          if (((ConnectionLabelEvent)event).moveLabel())
          {
            write(connPart);
View Full Code Here

      ElementList<DiagramConnectionLayout> connList = node.getEmbeddedConnectionsLayout();
      for (DiagramConnectionLayout connLayout : connList)
      {
        String connId = connLayout.getConnectionId().content();
        ElementList<DiagramBendPointLayout> bps = connLayout.getConnectionBendpoints();
        DiagramConnectionPart connPart = getConnectionPart(connService, ConnectionHashKey.createKey(nodeId, connId));
        if (connPart != null)
        {         
          int index = 0;
          for (DiagramBendPointLayout pt : bps)
          {
            connPart.addBendpoint(index++, pt.getX().content(), pt.getY().content());
          }
         
          if (connLayout.getLabelX().content(false) != null && connLayout.getLabelY().content(false) != null)
          {
            Point labelPos = new Point(connLayout.getLabelX().content(), connLayout.getLabelY().content());
            connPart.setLabelPosition(labelPos);
          }
        }
      }
       
    }
   
    ElementList<DiagramConnectionLayout> connList = this.layoutModel.getDiagramConnectionsLayout();
    for (DiagramConnectionLayout connLayout : connList)
    {
      String connId = connLayout.getConnectionId().content();
      DiagramConnectionPart connPart = getConnectionPart(connService, ConnectionHashKey.createKey(null, connId));
      ElementList<DiagramBendPointLayout> bps = connLayout.getConnectionBendpoints();
      if (connPart != null)
      {
        int index = 0;
        for (DiagramBendPointLayout pt : bps)
        {
          connPart.addBendpoint(index++, pt.getX().content(), pt.getY().content());
        }
        List<Point> bendPoints = new ArrayList<Point>();
        bendPoints.addAll(connPart.getBendpoints());
       
        if (connLayout.getLabelX().content(false) != null &&
            connLayout.getLabelY().content(false) != null)
        {
          Point labelPos = new Point(connLayout.getLabelX().content(),
              connLayout.getLabelY().content());
          connPart.setLabelPosition(labelPos);
        }
      }
    }
   
    // Listen on existing connection parts
    for (DiagramConnectionPart connPart : connService.list())
    {
      connPart.attach(this.connectionPartListener);
    }
   
  }
View Full Code Here

      }
  }

    protected void handleConnectionAddEvent(ConnectionAddEvent event)
    {
    DiagramConnectionPart connPart = event.part();

    connPart.attach(this.connectionPartListener);
    DiagramConnectionInfo connInfo = read(connPart);
    if (connInfo != null)
    {
      connPart.resetBendpoints(connInfo.getBendPoints());
      if (connInfo.getLabelPosition() != null)
      {
        connPart.setLabelPosition(connInfo.getLabelPosition());
      }
    }     
  }
View Full Code Here

TOP

Related Classes of org.eclipse.sapphire.ui.diagram.DiagramConnectionPart

Copyright © 2018 www.massapicom. 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.