2016-05-20 6 views
0

Luceneを使用して作成したインデックス用の小さな検索エンジンを構築し始めました。 GWTを使って私が好きなGUIを作成していますが、問題が残っています。私はDockLayoutPanelの中​​心にあるFlowPanelの中​​にいくつかの結果を追加しようとしていますので、好きなようにページをスクロールすることができます。私の問題は、(私が知ったように)スクロールして作業をするために、ブラウザーウインドウに結果が表示されないようにするためには、すべてのDockLayoutPanelの子が絶対位置を持たないようにすることです。私の問題は、私がそれを取り除くことができないことです(または私は方法を知らない)。クロムインスペクタのスクロール機能から無効にすると、再び有効にするとflowPanelがカットされます。SetStyleNameをgwtに設定するdockLayoutPanel子

public static void loadCellTrees(HashMap<Integer,LinkedHashMap<String,String>> searchResults, List<RootCategories> list) 
{   
     VerticalPanel westTrees = new VerticalPanel(); 
     TreeViewModel treeModel = new CellTreeWidget(list); 
     CellTree tree = new CellTree(treeModel, null); 
     HTMLBuilder builder = new HTMLBuilder(searchResults); 

     tree.setStyleName("tree"); 
     tree.setAnimationEnabled(true); 

     dock.clear(); 
     westTrees.clear(); 
     westTrees.getElement().setAttribute("align", "center"); 
     westTrees.add(tree); 

     FlowPanel resultsPanel = new FlowPanel(); 
     resultsPanel.setStyleName("resultsPanel"); 

     for(int i=0; i<searchResults.size(); i++) 
     { 
      HTML box = builder.toHTML(i); 
      box.setStyleName("resultBox"); 
      resultsPanel.add(box); 
     } 

     dock.addWest(westTrees, 20); 
     dock.addNorth(RootPanel.get("wrap"),20); 

     dock.add(resultsPanel); 
} 

私のコードの先頭に私は私のRootLayoutPanelにドック(DockLayoutPanel)を追加します。ここでは、Javaコードです。

enter image description here

Iは最初の画像で示すよう...絶対に設定された位置で私がスクロールバーを有することができ、結果がカットされ、私は位置無効にした場合:第PIC

に示すように、絶対的な

enter image description here

スクロールバーが有効になっており、すべての結果に完全にアクセスできます。

スクロールバーは、次のように設定されている:私が何をしようとしています何

RootLayoutPanel.get().getWidgetContainerElement(dock).getStyle().setOverflowY(Overflow.AUTO); 

は、すべてのdockLayoutPanelの子のための位置を削除するか、私に問題を作成していない何か他のものに設定しています。

答えて

0

解決策が見つかりました。 CSSスタイルでは、単に私は、誰もが、私はそれを聞いて喜んでいるだろう!importantを使用するより良い方法を提案する必要がある場合

.cw-DockPanel > div { 
    position : initial !important; 
} 

を書かなければなりませんでした。

関連する問題