blob: ed9883dd357f19a2d97a906ee35fe4cab843f417 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
/*
@VaadinApache2LicenseForJavaFiles@
*/
package com.vaadin.terminal.gwt.client.ui.tabsheet;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.UIDL;
public abstract class VTabsheetBase extends ComplexPanel {
protected String id;
protected ApplicationConnection client;
protected final ArrayList<String> tabKeys = new ArrayList<String>();
protected int activeTabIndex = 0;
protected boolean disabled;
protected boolean readonly;
protected Set<String> disabledTabKeys = new HashSet<String>();
public VTabsheetBase(String classname) {
setElement(DOM.createDiv());
setStyleName(classname);
}
/**
* @return a list of currently shown Widgets
*/
abstract protected Iterator<Widget> getWidgetIterator();
/**
* Clears current tabs and contents
*/
abstract protected void clearPaintables();
/**
* Implement in extending classes. This method should render needed elements
* and set the visibility of the tab according to the 'selected' parameter.
*/
protected abstract void renderTab(final UIDL tabUidl, int index,
boolean selected, boolean hidden);
/**
* Implement in extending classes. This method should render any previously
* non-cached content and set the activeTabIndex property to the specified
* index.
*/
protected abstract void selectTab(int index, final UIDL contentUidl);
/**
* Implement in extending classes. This method should return the number of
* tabs currently rendered.
*/
protected abstract int getTabCount();
/**
* Implement in extending classes. This method should return the Paintable
* corresponding to the given index.
*/
protected abstract ComponentConnector getTab(int index);
/**
* Implement in extending classes. This method should remove the rendered
* tab with the specified index.
*/
protected abstract void removeTab(int index);
}
|