added an option to disable the "collapsing" of a collapsablePanel -> used in the chart popup dialog

This commit is contained in:
fmittag committed 2012-02-16 12:25:23 +01:00
1 parent 7c7ca702a0
commit 3fd5eca205
3 files changed
+29 -9

No files matched your search

@@ -62,7 +62,6 @@ public class CompareCompetitorsChartDialog extends DialogBox {
@Override
public void onDataLoaded(DataLoadedEvent event) {
CompareCompetitorsChartDialog.this.setPopupPosition(5, 5);
//CompareCompetitorsChartDialog.this.setSize((int) (Window.getClientWidth()*0.9) + "px", (int) (Window.getClientHeight() * 0.9) + "px");
CompareCompetitorsChartDialog.this.show();
}
});
@@ -72,6 +71,7 @@ public class CompareCompetitorsChartDialog extends DialogBox {
collapsablePanel = new CollapsablePanel("", true);
collapsablePanel.setSize("100%", "100%");
collapsablePanel.setOpen(true);
collapsablePanel.setCollapsingEnabled(false);
ComponentToolbar<MultiChartSettings> toolbar = new ComponentToolbar<MultiChartSettings>(multiChartPanel, stringConstants);
toolbar.addSettingsButton();
@@ -85,7 +85,6 @@ public class CompareCompetitorsChartDialog extends DialogBox {
this.add(collapsablePanel);
this.setPopupPosition(15, 15);
//this.setSize((int) (Window.getClientWidth()*0.9) + "px", (int) (Window.getClientHeight() * 0.9) + "px");
closeAnchor = new Anchor("x");
FlexTable captionLayoutTable = new FlexTable();
@@ -166,6 +166,8 @@ public final class CollapsablePanel extends Composite implements HasWidgets.ForI
private boolean isAnimationEnabled = false;
private boolean isOpen = false;
private boolean isCollapsingEnabled = true;
/**
* Creates an empty ThePanel that is initially closed.
@@ -283,6 +285,16 @@ public final class CollapsablePanel extends Composite implements HasWidgets.ForI
return isOpen;
}
public boolean isCollapsingEnabled() {
return isCollapsingEnabled;
}
public void setCollapsingEnabled(boolean enable) {
isCollapsingEnabled = enable;
this.headerPanel.setCollapsingEnabled(enable);
}
public Iterator<Widget> iterator() {
return null;
}
@@ -295,11 +307,6 @@ public final class CollapsablePanel extends Composite implements HasWidgets.ForI
return false;
}
/**
* Overloaded version for IsWidget.
*
* @see #remove(Widget)
*/
public boolean remove(IsWidget w) {
return this.remove(asWidgetOrNull(w));
}
@@ -28,6 +28,7 @@ public class CollapsablePanelHeader extends FlowPanel implements HasText, OpenHa
private final CollapsablePanel collapsablePanel;
private final boolean hasToolbar;
private final SimplePanel toolbarPanel;
private final ClickableHeader clickableHeaderPanel;
private static final String STYLENAME_TOOLBAR = "collapsablePanel-toolbar";
@@ -46,7 +47,7 @@ public class CollapsablePanelHeader extends FlowPanel implements HasText, OpenHa
textLabel= new Label(text);
textLabel.addStyleName(STYLENAME_HEADER_TEXT);
ClickableHeader clickableHeaderPanel = new ClickableHeader(collapsablePanel);
clickableHeaderPanel = new ClickableHeader(collapsablePanel);
clickableHeaderPanel.setStyleName(STYLENAME_HEADER_COLLAPSE_AREA);
add(clickableHeaderPanel);
@@ -93,6 +94,11 @@ public class CollapsablePanelHeader extends FlowPanel implements HasText, OpenHa
}
}
protected void setCollapsingEnabled(boolean enabled)
{
clickableHeaderPanel.setClickable(enabled);
}
public final String getText() {
return textLabel.getText();
}
@@ -120,6 +126,8 @@ public class CollapsablePanelHeader extends FlowPanel implements HasText, OpenHa
private final class ClickableHeader extends SimplePanel {
private final CollapsablePanel panel;
private boolean isClickable = true;
private ClickableHeader(final CollapsablePanel panel) {
// Anchor is used to allow keyboard access.
super(DOM.createAnchor());
@@ -131,6 +139,10 @@ public class CollapsablePanelHeader extends FlowPanel implements HasText, OpenHa
sinkEvents(Event.ONCLICK);
}
protected void setClickable(boolean enabled) {
this.isClickable = enabled;
}
@Override
public void onBrowserEvent(Event event) {
// no need to call super.
@@ -138,7 +150,9 @@ public class CollapsablePanelHeader extends FlowPanel implements HasText, OpenHa
case Event.ONCLICK:
// Prevent link default action.
DOM.eventPreventDefault(event);
panel.setOpen(!panel.isOpen());
if(isClickable) {
panel.setOpen(!panel.isOpen());
}
}
}
}