私はsmartGWTが初めてです。次のリンクでチュートリアルを見ました http://www.javacodegeeks.com/2011/01/advanced-smartgwt-tutorial-part-2.html
ここには、メイン エリアとナビゲーション エリアの 2 つのクラスがあります。ナビゲーション領域にはツリー ノードが含まれます。ツリーノードをクリックするとポップアップが表示されるのですが、ノードのクリックイベントでタブを作成したいです。
次の方法で試しましたが、うまくいきませんでした。メインエリアがすでにロードされているため、タブが追加されたと思いますが、効果はありません
メイン エリア クラスには次のコードがあります。
public class MainArea extends SectionStack {
final TabSet topTabSet = new TabSet();
public static MainArea mainareaobj;
public static MainArea getInstance()
{
if(mainareaobj==null)
{
mainareaobj=new MainArea();
}
return mainareaobj;
}
public MainArea() {
super();
this.setOverflow(Overflow.AUTO);
topTabSet.setTabBarPosition(Side.TOP);
topTabSet.setTabBarAlign(Side.LEFT);
SectionStackSection section2 = new SectionStackSection("TabSection2");
section2.setExpanded(true);
section2.addItem(topTabSet);
this.addSection(section2);
}
次のコードはナビゲーショングリッドです
public class NavigationTreeGrid extends TreeGrid {
public String scenario_Name;
public Tab scenarioTab;
MainArea obj=MainArea.getInstance();
public NavigationTreeGrid() {
setShowOpenIcons(false);
setShowDropIcons(false);
setShowSelectedStyle(true);
setShowPartialSelection(true);
setCascadeSelection(false);
setCanSort(false);
setShowConnectors(true);
setShowHeader(false);
setLoadDataOnDemand(false);
setSelectionType(SelectionStyle.SINGLE);
Tree data = new Tree();
data.setModelType(TreeModelType.CHILDREN);
data.setRoot(
new TreeNode("root",
new TreeNode("rootNode",
new TreeNode("Node1"), new TreeNode("Node2"),new TreeNode("Node3"),new TreeNode("Node4"),new TreeNode("Node5")))
);
setData(data);
addNodeClickHandler(new NodeClickHandler() {
@Override
public void onNodeClick(NodeClickEvent event) {
scenario_Name = event.getNode().getName();
obj.topTabSet.addTab(createTab(scenario_Name));
}
});
}
public Tab createTab(String tabName)
{
scenarioTab=new Tab(tabName);
scenarioTab.setCanClose(true);
//scenarioTab.setWidth(300);
return scenarioTab;
}
助けてくれませんか