diff --git a/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveDialog.java b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveDialog.java index b25cff6..75824fb 100644 --- a/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveDialog.java +++ b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveDialog.java @@ -3,8 +3,12 @@ package org.gcube.portlets.user.td.rulewidget.client; import org.gcube.portlets.user.td.rulewidget.client.resources.ResourceBundle; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; +import com.allen_sauer.gwt.log.client.Log; import com.google.web.bindery.event.shared.EventBus; +import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; import com.sencha.gxt.widget.core.client.Window; +import com.sencha.gxt.widget.core.client.button.TextButton; +import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; @@ -17,12 +21,11 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; public class RuleActiveDialog extends Window { private static final String WIDTH = "770px"; private static final String HEIGHT = "428px"; + private TextButton btnClose; public RuleActiveDialog(TRId trId, EventBus eventBus) { initWindow(); - - RuleActivePanel ruleActivePanel = new RuleActivePanel(this, - trId, eventBus); - add(ruleActivePanel); + RuleActiveTabPanel ruleActiveTabPanel=new RuleActiveTabPanel(trId, eventBus); + add(ruleActiveTabPanel); } protected void initWindow() { @@ -35,7 +38,23 @@ public class RuleActiveDialog extends Window { setModal(true); forceLayoutOnResize = true; getHeader().setIcon(ResourceBundle.INSTANCE.ruleTabularResource()); + + + btnClose = new TextButton("Close"); + btnClose.setIcon(ResourceBundle.INSTANCE.close()); + btnClose.setIconAlign(IconAlign.RIGHT); + btnClose.setToolTip("Close"); + btnClose.addSelectHandler(new SelectHandler() { + public void onSelect(SelectEvent event) { + Log.debug("Pressed Close"); + close(); + } + }); + + addButton(btnClose); + setButtonAlign(BoxLayoutPack.CENTER); + } /** diff --git a/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActivePanel.java b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveOnColumnPanel.java similarity index 81% rename from src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActivePanel.java rename to src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveOnColumnPanel.java index 249e932..c075772 100644 --- a/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActivePanel.java +++ b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveOnColumnPanel.java @@ -29,23 +29,14 @@ import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.web.bindery.event.shared.EventBus; -import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; import com.sencha.gxt.core.client.XTemplates; import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode; import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.widget.core.client.FramedPanel; -import com.sencha.gxt.widget.core.client.button.TextButton; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; -import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer; -import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; -import com.sencha.gxt.widget.core.client.event.SelectEvent; -import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; import com.sencha.gxt.widget.core.client.form.FieldLabel; -import com.sencha.gxt.widget.core.client.form.FieldSet; import com.sencha.gxt.widget.core.client.grid.ColumnConfig; import com.sencha.gxt.widget.core.client.grid.ColumnModel; import com.sencha.gxt.widget.core.client.grid.Grid; @@ -61,34 +52,28 @@ import com.sencha.gxt.widget.core.client.menu.MenuItem; * href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it * */ -public class RuleActivePanel extends FramedPanel { +public class RuleActiveOnColumnPanel extends FramedPanel { private static final String WIDTH = "760px"; private static final String HEIGHT = "418px"; - private static final int RULE_ON_COLUMN_FIELDSET_HEIGHT = 348; private static final String RULES_GRID_HEIGHT = "102px"; - - + interface RuleActiveTemplates extends XTemplates { @XTemplate("{value}") SafeHtml format(String value); } private EventBus eventBus; - private RuleActiveDialog parent; private TRId trId; private ArrayList columns; private AppliedRulesResponseData appliedRuleResponseData; - private TextButton btnClose; private VerticalLayoutContainer mainLayoutContainer; - public RuleActivePanel(RuleActiveDialog parent, TRId trId, - EventBus eventBus) { - this.parent = parent; + public RuleActiveOnColumnPanel(TRId trId, EventBus eventBus) { + super(); this.trId = trId; - - Log.debug("RuleActivePanel"); + Log.debug("RuleActiveOnColumnPanel"); setWidth(WIDTH); setHeight(HEIGHT); setHeaderVisible(false); @@ -145,19 +130,13 @@ public class RuleActivePanel extends FramedPanel { } protected void create() { - - Log.debug("Create RuleActivePanel(): " + trId); - - // SimpleContainer rulesOnColumnContainer=new SimpleContainer(); - FieldSet columnRulesFieldSet = new FieldSet(); - columnRulesFieldSet.setHeadingText("Rules On Column"); - columnRulesFieldSet.setCollapsible(false); + Log.debug("Create RuleActiveOnColumnPanel(): " + trId); VerticalLayoutContainer columnRulesFieldSetLayout = new VerticalLayoutContainer(); columnRulesFieldSetLayout.setScrollMode(ScrollMode.AUTO); columnRulesFieldSetLayout.setAdjustForScroll(true); - columnRulesFieldSet.add(columnRulesFieldSetLayout); + add(columnRulesFieldSetLayout); HashMap> columnRuleMapping = appliedRuleResponseData .getColumnRuleMapping(); @@ -174,36 +153,15 @@ public class RuleActivePanel extends FramedPanel { } } } else { - FieldLabel noRulesLabel = new FieldLabel(null, "No rules applied!"); + FieldLabel noRulesLabel = new FieldLabel(null, "No rules on column applied!"); noRulesLabel.setLabelSeparator(""); + noRulesLabel.setLabelWidth(200); columnRulesFieldSetLayout.add(noRulesLabel, new VerticalLayoutData( 1, -1, new Margins(0))); } - btnClose = new TextButton("Close"); - btnClose.setIcon(ResourceBundle.INSTANCE.close()); - btnClose.setIconAlign(IconAlign.RIGHT); - btnClose.setToolTip("Close"); - btnClose.addSelectHandler(new SelectHandler() { - - public void onSelect(SelectEvent event) { - Log.debug("Pressed Close"); - close(); - } - }); - - HBoxLayoutContainer flowButton = new HBoxLayoutContainer(); - flowButton.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); - flowButton.setPack(BoxLayoutPack.CENTER); - flowButton.add(btnClose, new BoxLayoutData(new Margins(2, 4, 2, 4))); - - mainLayoutContainer = new VerticalLayoutContainer(); - mainLayoutContainer.add(columnRulesFieldSet, new VerticalLayoutData(-1, - RULE_ON_COLUMN_FIELDSET_HEIGHT, new Margins(0))); - mainLayoutContainer.add(flowButton, - new VerticalLayoutData(1, 36, new Margins(5, 2, 5, 2))); - add(mainLayoutContainer); + } @@ -258,19 +216,18 @@ public class RuleActivePanel extends FramedPanel { @Override public void render(Context context, String value, SafeHtmlBuilder sb) { - RuleActiveTemplates ruleActiveTemplates = GWT - .create(RuleActiveTemplates .class); + RuleActiveTemplates ruleActiveTemplates = GWT + .create(RuleActiveTemplates.class); sb.append(ruleActiveTemplates.format(value)); } }); - List> l = new ArrayList>(); l.add(nameCol); l.add(descriptionCol); l.add(ownerCol); l.add(creationDateCol); - + ColumnModel cm = new ColumnModel( l); @@ -316,8 +273,8 @@ public class RuleActivePanel extends FramedPanel { protected void getActiveRulesOnColumn() { - ExpressionServiceAsync.INSTANCE.getActiveRulesByTabularResourceId( - trId, new AsyncCallback() { + ExpressionServiceAsync.INSTANCE.getActiveRulesByTabularResourceId(trId, + new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -341,12 +298,11 @@ public class RuleActivePanel extends FramedPanel { }); } - - + protected void updateActiveRulesOnColumn() { - ExpressionServiceAsync.INSTANCE.getActiveRulesByTabularResourceId( - trId, new AsyncCallback() { + ExpressionServiceAsync.INSTANCE.getActiveRulesByTabularResourceId(trId, + new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -370,20 +326,11 @@ public class RuleActivePanel extends FramedPanel { }); } - - - protected void close() { - parent.close(); - } - - - protected void requestInfo(RuleDescriptionData rule) { final RuleInfoDialog infoRuleDialog = new RuleInfoDialog(rule); infoRuleDialog.show(); - } protected void createContextMenu(final Grid grid) { @@ -403,7 +350,7 @@ public class RuleActivePanel extends FramedPanel { requestInfo(selected); } }); - + MenuItem detachItem = new MenuItem(); detachItem.setText("Detach"); detachItem.setToolTip("Detach rule"); @@ -418,9 +365,7 @@ public class RuleActivePanel extends FramedPanel { requestDetach(selected, grid); } - }); - contextMenu.add(infoItem); contextMenu.add(detachItem); @@ -431,17 +376,18 @@ public class RuleActivePanel extends FramedPanel { protected void requestDetach(RuleDescriptionData selected, final Grid grid) { - - String columnLocalId=grid.getItemId(); - ColumnData columnData=new ColumnData(); + + String columnLocalId = grid.getItemId(); + ColumnData columnData = new ColumnData(); columnData.setColumnId(columnLocalId); - ArrayList detachRules=new ArrayList(); + ArrayList detachRules = new ArrayList(); detachRules.add(selected); - - DetachColumnRulesSession detachColumnRulesSession=new DetachColumnRulesSession(trId, columnData, detachRules); - - ExpressionServiceAsync.INSTANCE.setDetachColumnRules(detachColumnRulesSession, - new AsyncCallback() { + + DetachColumnRulesSession detachColumnRulesSession = new DetachColumnRulesSession( + trId, columnData, detachRules); + + ExpressionServiceAsync.INSTANCE.setDetachColumnRules( + detachColumnRulesSession, new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -460,22 +406,18 @@ public class RuleActivePanel extends FramedPanel { public void onSuccess(Void result) { updateActiveRulesOnColumn(); Log.debug("The rule is detached!"); - UtilsGXT3.info("Detach Rule", - "The rule is detached!"); - + UtilsGXT3.info("Detach Rule", "The rule is detached!"); + } }); - + } - - - protected void recreate(){ + + protected void recreate() { remove(mainLayoutContainer); create(); forceLayout(); - - + } - } diff --git a/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveOnTablePanel.java b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveOnTablePanel.java new file mode 100644 index 0000000..b2d25dd --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveOnTablePanel.java @@ -0,0 +1,347 @@ +package org.gcube.portlets.user.td.rulewidget.client; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.portlets.user.td.expressionwidget.client.rpc.ExpressionServiceAsync; +import org.gcube.portlets.user.td.expressionwidget.shared.rule.RuleDescriptionDataProperties; +import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; +import org.gcube.portlets.user.td.gwtservice.shared.rule.AppliedRulesResponseData; +import org.gcube.portlets.user.td.gwtservice.shared.rule.DetachTableRulesSession; +import org.gcube.portlets.user.td.gwtservice.shared.rule.description.RuleDescriptionData; +import org.gcube.portlets.user.td.rulewidget.client.resources.ResourceBundle; +import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; +import org.gcube.portlets.user.td.wizardwidget.client.util.UtilsGXT3; + +import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.cell.client.AbstractCell; +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.logical.shared.SelectionEvent; +import com.google.gwt.event.logical.shared.SelectionHandler; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.web.bindery.event.shared.EventBus; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode; +import com.sencha.gxt.core.client.util.Margins; +import com.sencha.gxt.data.shared.ListStore; +import com.sencha.gxt.widget.core.client.FramedPanel; +import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; +import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; +import com.sencha.gxt.widget.core.client.form.FieldLabel; +import com.sencha.gxt.widget.core.client.grid.ColumnConfig; +import com.sencha.gxt.widget.core.client.grid.ColumnModel; +import com.sencha.gxt.widget.core.client.grid.Grid; +import com.sencha.gxt.widget.core.client.grid.filters.GridFilters; +import com.sencha.gxt.widget.core.client.grid.filters.StringFilter; +import com.sencha.gxt.widget.core.client.menu.Item; +import com.sencha.gxt.widget.core.client.menu.Menu; +import com.sencha.gxt.widget.core.client.menu.MenuItem; + +/** + * + * @author giancarlo email: g.panichi@isti.cnr.it + * + */ +public class RuleActiveOnTablePanel extends FramedPanel { + private static final String WIDTH = "760px"; + private static final String HEIGHT = "418px"; + + interface RuleActiveTemplates extends XTemplates { + @XTemplate("{value}") + SafeHtml format(String value); + } + + private EventBus eventBus; + private TRId trId; + + private AppliedRulesResponseData appliedRuleResponseData; + private VerticalLayoutContainer mainLayoutContainer; + + public RuleActiveOnTablePanel(TRId trId, EventBus eventBus) { + super(); + this.trId = trId; + this.eventBus = eventBus; + Log.debug("RuleActiveOnTablePanel"); + setWidth(WIDTH); + setHeight(HEIGHT); + setHeaderVisible(false); + setBodyBorder(false); + getActiveRules(); + + } + + + protected void create() { + Log.debug("Create RuleActiveOnTablePanel(): " + trId); + + VerticalLayoutContainer v = new VerticalLayoutContainer(); + v.setScrollMode(ScrollMode.AUTO); + v.setAdjustForScroll(true); + + + ArrayList appliedTableRules=appliedRuleResponseData.getTableRules(); + if (appliedTableRules == null || appliedTableRules.size() <=0) { + FieldLabel noRulesLabel = new FieldLabel(null, "No rules on table applied!"); + noRulesLabel.setLabelSeparator(""); + noRulesLabel.setLabelWidth(200); + v.add(noRulesLabel, new VerticalLayoutData( + 1, -1, new Margins(0))); + add(v); + return; + } + + //Grid + + RuleDescriptionDataProperties propsRules = GWT + .create(RuleDescriptionDataProperties.class); + + ColumnConfig nameCol = new ColumnConfig( + propsRules.name(), 120, "Name"); + + nameCol.setCell(new AbstractCell() { + + @Override + public void render(Context context, String value, SafeHtmlBuilder sb) { + RuleActiveTemplates ruleActiveTemplates = GWT + .create(RuleActiveTemplates.class); + sb.append(ruleActiveTemplates.format(value)); + } + }); + + ColumnConfig descriptionCol = new ColumnConfig( + propsRules.description(), 120, "Description"); + descriptionCol.setCell(new AbstractCell() { + + @Override + public void render(Context context, String value, SafeHtmlBuilder sb) { + RuleActiveTemplates ruleActiveTemplates = GWT + .create(RuleActiveTemplates.class); + sb.append(ruleActiveTemplates.format(value)); + } + }); + + ColumnConfig ownerCol = new ColumnConfig( + propsRules.ownerLogin(), 70, "Owner"); + ownerCol.setCell(new AbstractCell() { + + @Override + public void render(Context context, String value, SafeHtmlBuilder sb) { + RuleActiveTemplates ruleActiveTemplates = GWT + .create(RuleActiveTemplates.class); + sb.append(ruleActiveTemplates.format(value)); + } + }); + + ColumnConfig creationDateCol = new ColumnConfig( + propsRules.creationDate(), 50, "Creation Date"); + + creationDateCol.setCell(new AbstractCell() { + + @Override + public void render(Context context, String value, SafeHtmlBuilder sb) { + RuleActiveTemplates ruleActiveTemplates = GWT + .create(RuleActiveTemplates.class); + sb.append(ruleActiveTemplates.format(value)); + } + }); + + List> l = new ArrayList>(); + l.add(nameCol); + l.add(descriptionCol); + l.add(ownerCol); + l.add(creationDateCol); + + ColumnModel cm = new ColumnModel( + l); + + StringFilter nameFilter = new StringFilter( + propsRules.name()); + StringFilter descriptionFilter = new StringFilter( + propsRules.description()); + + // Applies Rules + ListStore appliedRulesStore = new ListStore( + propsRules.id()); + + + appliedRulesStore.addAll(appliedTableRules); + + + final Grid gridAppliedRules = new Grid( + appliedRulesStore, cm); + //gridAppliedRules.setHeight(RULES_GRID_HEIGHT); + gridAppliedRules.getView().setStripeRows(true); + gridAppliedRules.getView().setColumnLines(true); + gridAppliedRules.getView().setAutoFill(true); + gridAppliedRules.setBorders(false); + gridAppliedRules.setLoadMask(true); + gridAppliedRules.setColumnReordering(true); + gridAppliedRules.setColumnResize(true); + gridAppliedRules.getView().setAutoExpandColumn(descriptionCol); + + GridFilters filtersAppliesRules = new GridFilters(); + filtersAppliesRules.initPlugin(gridAppliedRules); + filtersAppliesRules.setLocal(true); + filtersAppliesRules.addFilter(nameFilter); + filtersAppliesRules.addFilter(descriptionFilter); + + createContextMenu(gridAppliedRules); + + v.add(gridAppliedRules, new VerticalLayoutData( + 1, 1, new Margins(0))); + add(v); + return; + } + + protected void getActiveRules() { + + ExpressionServiceAsync.INSTANCE.getActiveRulesByTabularResourceId(trId, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error retrieving active rules", + caught.getLocalizedMessage()); + } + + } + + @Override + public void onSuccess(AppliedRulesResponseData result) { + Log.trace("AppliedRuleResponseData: " + result); + appliedRuleResponseData = result; + create(); + } + }); + + } + + protected void updateActiveRulesOnColumn() { + + ExpressionServiceAsync.INSTANCE.getActiveRulesByTabularResourceId(trId, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error retrieving applied rules", + caught.getLocalizedMessage()); + } + + } + + @Override + public void onSuccess(AppliedRulesResponseData result) { + Log.trace("AppliedRuleResponseData: " + result); + appliedRuleResponseData = result; + recreate(); + } + }); + + } + + protected void requestInfo(RuleDescriptionData rule) { + final RuleInfoDialog infoRuleDialog = new RuleInfoDialog(rule); + infoRuleDialog.show(); + + } + + protected void createContextMenu(final Grid grid) { + Menu contextMenu = new Menu(); + + MenuItem infoItem = new MenuItem(); + infoItem.setText("Info"); + infoItem.setToolTip("Info"); + infoItem.setIcon(ResourceBundle.INSTANCE.information()); + infoItem.addSelectionHandler(new SelectionHandler() { + + @Override + public void onSelection(SelectionEvent event) { + RuleDescriptionData selected = grid.getSelectionModel() + .getSelectedItem(); + Log.debug(selected.toString()); + requestInfo(selected); + } + }); + + MenuItem detachItem = new MenuItem(); + detachItem.setText("Detach"); + detachItem.setToolTip("Detach rule"); + detachItem.setIcon(ResourceBundle.INSTANCE.ruleColumnDetach()); + detachItem.addSelectionHandler(new SelectionHandler() { + + @Override + public void onSelection(SelectionEvent event) { + RuleDescriptionData selected = grid.getSelectionModel() + .getSelectedItem(); + Log.debug(selected.toString()); + requestDetach(selected, grid); + } + + }); + + contextMenu.add(infoItem); + contextMenu.add(detachItem); + + grid.setContextMenu(contextMenu); + + } + + protected void requestDetach(RuleDescriptionData selected, + final Grid grid) { + + ArrayList detachRules = new ArrayList(); + detachRules.add(selected); + + DetachTableRulesSession detachTableRulesSession = new DetachTableRulesSession( + trId, detachRules); + + ExpressionServiceAsync.INSTANCE.setDetachTableRules( + detachTableRulesSession, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error in detach rules", + caught.getLocalizedMessage()); + } + + } + + @Override + public void onSuccess(Void result) { + updateActiveRulesOnColumn(); + Log.debug("The rule is detached!"); + UtilsGXT3.info("Detach Rule", "The rule is detached!"); + + } + }); + + } + + protected void recreate() { + remove(mainLayoutContainer); + create(); + forceLayout(); + + } + +} diff --git a/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveTabPanel.java b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveTabPanel.java new file mode 100644 index 0000000..cc8c19b --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/rulewidget/client/RuleActiveTabPanel.java @@ -0,0 +1,57 @@ +package org.gcube.portlets.user.td.rulewidget.client; + +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; + +import com.allen_sauer.gwt.log.client.Log; +import com.google.web.bindery.event.shared.EventBus; +import com.sencha.gxt.widget.core.client.TabItemConfig; +import com.sencha.gxt.widget.core.client.TabPanel; + +/** + * + * @author giancarlo + * email: g.panichi@isti.cnr.it + * + */ +public class RuleActiveTabPanel extends TabPanel { + private EventBus eventBus; + private RuleActiveOnColumnPanel ruleActiveOnColumnPanel; + private TRId trId; + private RuleActiveOnTablePanel ruleActiveOnTablePanel; + + public RuleActiveTabPanel(TRId trId, EventBus eventBus) { + super(); + Log.debug("Create RuleActiveTabPanel"); + this.trId=trId; + this.eventBus = eventBus; + setBodyBorder(false); + setBorders(false); + setAnimScroll(true); + setTabScroll(true); + setCloseContextMenu(false); + addTabs(); + startTabs(); + } + + public void startTabs() { + Log.debug("Start RuleActiveTabPanel Tabs"); + setActiveWidget(getWidget(0)); + + } + + public void addTabs(){ + TabItemConfig ruleOnColumnItemConf = new TabItemConfig( + "Rule On Column", false); + + ruleActiveOnColumnPanel = new RuleActiveOnColumnPanel(trId,eventBus); + add(ruleActiveOnColumnPanel, ruleOnColumnItemConf); + + TabItemConfig ruleOnTableItemConf = new TabItemConfig( + "Rule On Table", false); + + ruleActiveOnTablePanel = new RuleActiveOnTablePanel(trId,eventBus); + add(ruleActiveOnTablePanel, ruleOnTableItemConf); + + } + +}