public void onSelectTab(StackItem item) {
final int index = stack.indexOf(item);
- if (index != activeTabIndex && !disabled && !readonly) {
+ if (index != activeTabIndex && !disabled && !readonly
+ && !disabledTabKeys.contains(tabKeys.get(index))) {
if (getSelectedStack() != null) {
getSelectedStack().close();
}
public void onTabSelected(SourcesTabEvents sender, final int tabIndex) {
if (client != null && activeTabIndex != tabIndex) {
addStyleDependentName("loading");
- // run updating variables in deferred command to bypass some FF
+ // run updating variables in deferred command to bypass some
+ // FF
// optimization issues
DeferredCommand.addCommand(new Command() {
-
public void execute() {
previousVisibleWidget = tp.getWidget(tp
.getVisibleWidget());
DOM.setStyleAttribute(previousVisibleWidget
.getElement(), "visibility", "hidden");
- client.updateVariable(id, "selected", ""
- + tabKeys.get(tabIndex), true);
+ client.updateVariable(id, "selected", tabKeys.get(
+ tabIndex).toString(), true);
}
});
}
if (disabled) {
return false;
}
+ final Object tabKey = tabKeys.get(tabIndex);
+ if (disabledTabKeys.contains(tabKey)) {
+ return false;
+ }
+
return true;
}
package com.itmill.toolkit.terminal.gwt.client.ui;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.Iterator;
+import java.util.Set;
import com.google.gwt.user.client.ui.FlowPanel;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
protected int activeTabIndex = 0;
protected boolean disabled;
protected boolean readonly;
+ protected Set disabledTabKeys = new HashSet();
public ITabsheetBase(String classname) {
setStylePrimaryName(classname);
// Clear previous values
tabKeys.clear();
captions.clear();
+ disabledTabKeys.clear();
clear();
int index = 0;
caption = " ";
}
+ if (tab.getBooleanAttribute("disabled")) {
+ disabledTabKeys.add(key);
+ }
+
captions.add(caption);
tabKeys.add(key);
final UIDL tabs = uidl.getChildUIDL(0);
boolean retval = tabKeys.size() == tabs.getNumberOfChildren();
for (int i = 0; retval && i < tabKeys.size(); i++) {
- retval = tabKeys.get(i).equals(
- tabs.getChildUIDL(i).getStringAttribute("key"))
+ String key = (String) tabKeys.get(i);
+ UIDL tabUIDL = tabs.getChildUIDL(i);
+ retval = key.equals(tabUIDL.getStringAttribute("key"))
&& captions.get(i).equals(
- tabs.getChildUIDL(i).getStringAttribute("caption"));
+ tabUIDL.getStringAttribute("caption"))
+ && (tabUIDL.hasAttribute("disabled") == disabledTabKeys
+ .contains(key));
}
return retval;
}