View Javadoc

1   /*
2    * TabPanel.java
3    * Created on 9 Август 2006 г., 15:41
4    */
5   
6   package org.weda.tapestry.component;
7   
8   import java.util.List;
9   import org.apache.tapestry.BaseComponent;
10  import org.apache.tapestry.annotations.ComponentClass;
11  import org.apache.tapestry.annotations.Parameter;
12  import org.apache.tapestry.annotations.Persist;
13  import org.apache.tapestry.components.Block;
14  import org.weda.Constants;
15  
16  /**
17   *
18   * @author Mikhail Titov
19   */
20  @ComponentClass(allowBody=false, allowInformalParameters=false)
21  public abstract class TabPanel extends BaseComponent {
22      /**Метод возвращает список названий блоков (компонентов).
23       */
24      @Parameter(required=true)
25      public abstract List<String> getTabNames();
26      @Parameter(required=true)
27      public abstract List<String> getTabTitles();
28      
29      @Persist()
30      public abstract String getSelectedTabName();
31      public abstract void setSelectedTabName(String blockName);
32      
33      public abstract String getTabName();
34      public abstract int getTabIndex();
35      
36      public Block getSelectedBlock(){
37          String blockName = getSelectedTabName();
38          if (blockName==null)
39              blockName = getTabNames().get(0);
40          return (Block)getContainer().getComponent(blockName);
41      }
42      
43      public void selectTab(String blockName){
44          setSelectedTabName(blockName);
45      }
46      
47      public boolean isTabSelected(){
48          String blockName = getSelectedTabName();
49          if (blockName==null)
50              blockName = getTabNames().get(0);
51          return blockName.equals(getTabName());
52      }
53      
54      public String getTabPanelLineClass(){
55          return Constants.TAB_PANEL_LINE_CLASS;
56      }
57      
58      public String getTabPanelTabClass(){
59          return Constants.TAB_PANEL_TAB_CLASS;
60      }
61      
62      public String getTabPanelSelectedTabClass(){
63          return Constants.TAB_PANEL_SELECTED_TAB_CLASS;
64      }
65      
66  }