1
2
3
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 }