2009-11-25 80 views
0

我在下面编写了一个测试类,但我无法将其添加到com.smartgwt.client.widgets.Window中。将gwt连接器添加到smartgwt中

任何人都可以帮助我吗?提前致谢!

package com.smartgwt.sample.showcase.client; 

import pl.tecna.gwt.connectors.client.ConnectionPoint; import pl.tecna.gwt.connectors.client.Connector; import pl.tecna.gwt.connectors.client.Diagram; import pl.tecna.gwt.connectors.client.SectionDecoration; import pl.tecna.gwt.connectors.client.Shape;

import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Image; import com.smartgwt.client.widgets.Label;

公共类NetworkMap {

公共NetworkMap(){ AbsolutePanel插件=新AbsolutePanel();

final Diagram diagram = new Diagram(widget); 

    final Label label = new Label("LABEL"); 

final Image image = new Image(“http://code.google.com/images/code_sm.png”); image.setPixelSize(153,55);

widget.add(label,50,250); widget.add(image,200,300);

Shape shapeLabel = new Shape(label); shapeForLabel.showOnDiagram(diagram);

形状shapeForImage = new Shape(image); shapeForImage.showOnDiagram(diagram);

ConnectionPoint labelConnectionPoint = shapeForLabel.connectionPoints [Shape.E]; ConnectionPoint imageConnectionPoint = shapeForImage.connectionPoints [Shape.W];

Connector label2image = new Connector 
    (labelConnectionPoint.getAbsoluteLeft(), 
        labelConnectionPoint.getAbsoluteTop(), 
        imageConnectionPoint.getAbsoluteLeft(), 
        imageConnectionPoint.getAbsoluteTop(), 
        null, 
        new SectionDecoration(SectionDecoration.DECORATE_ARROW)); 

label2image.startEndPoint.glueToConnectionPoint(labelConnectionPoint); 
label2image.endEndPoint.glueToConnectionPoint(imageConnectionPoint); 

label2image.showOnDiagram(diagram); 
    /* // Create boundary panel 

AbsolutePanel boundaryPanel = new AbsolutePanel();

initWidget(boundaryPanel); boundaryPanel.setSize(“700px”,“700px”); RootPanel.get()。add(boundaryPanel,10,10);

final Diagram diagram = new Diagram(boundaryPanel);

boundaryPanel.add(new Label(“GWT 1.7”的连接器示例),10,2);

//添加一些可以连接的元素 final Label label = new Label(“LABEL”); final Image image = new Image(“http://code.google.com/images/code_sm.png”); image.setPixelSize(153,55);

boundaryPanel.add(label,50,250); boundaryPanel.add(image,200,300);

Shape shapeLabel = new Shape(label); shapeForLabel。showOnDiagram(图);

形状shapeForImage = new Shape(image); shapeForImage.showOnDiagram(diagram);

//连接标签和图像 ConnectionPoint labelConnectionPoint = shapeForLabel.connectionPoints [Shape.E]; ConnectionPoint imageConnectionPoint = shapeForImage.connectionPoints [Shape.W];

Connector label2image = new Connector 
    (labelConnectionPoint.getAbsoluteLeft(), 
        labelConnectionPoint.getAbsoluteTop(), 
        imageConnectionPoint.getAbsoluteLeft(), 
        imageConnectionPoint.getAbsoluteTop(), 
        null, 
        new SectionDecoration(SectionDecoration.DECORATE_ARROW)); 

label2image.startEndPoint.glueToConnectionPoint(labelConnectionPoint); 
label2image.endEndPoint.glueToConnectionPoint(imageConnectionPoint); 

label2image.showOnDiagram(diagram); 
*/ 

}

}

回答

0

据我了解你们把NetworkMap到一个窗口小部件。该NetworkMap类需要实现复合接口,它被认为是一个小部件,并在一个窗口,面板等显示......一旦你实现你需要通过提供主面板调用initWidget()函数的复合接口/包含您NetworkMap类内部小部件的布局(你这样做)。所以你需要写;

public class NetworkMap extends Composite { ... }