() {
-
- @Override
- public void onFailure(Throwable caught) {
- if (caught instanceof TDGWTSessionExpiredException) {
- eventBus.fireEvent(new SessionExpiredEvent(
- SessionExpiredType.EXPIREDONSERVER));
- } else {
- if (caught instanceof TDGWTIsLockedException) {
- Log.error(caught.getLocalizedMessage());
- UtilsGXT3.alert("Error Locked",
- caught.getLocalizedMessage());
- } else {
- if (caught instanceof TDGWTIsFinalException) {
- Log.error(caught.getLocalizedMessage());
- UtilsGXT3.alert("Error Is Final",
- caught.getLocalizedMessage());
- } else {
- Log.debug("Apply Rules On Column Error: "
- + caught.getLocalizedMessage());
- UtilsGXT3
- .alert("Apply Rules On Column",
- caught.getLocalizedMessage());
- }
- }
- }
-
- }
-
- @Override
- public void onSuccess(String taskId) {
- if(taskId!=null){
- openMonitorDialog(taskId);
- } else {
- close();
- }
-
- }
-
-
-
- });
-
- }
-
- protected void openMonitorDialog(String taskId) {
- MonitorDialog monitorDialog = new MonitorDialog(taskId, eventBus);
- monitorDialog.addProgressDialogListener(this);
- monitorDialog.show();
- }
-
- @Override
- public void operationComplete(OperationResult operationResult) {
- ChangeTableWhy why = ChangeTableWhy.TABLEUPDATED;
- ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent(
- ChangeTableRequestType.RULESONCOLUMNAPPLY, operationResult.getTrId(), why);
- eventBus.fireEvent(changeTableRequestEvent);
- close();
- }
-
- @Override
- public void operationFailed(Throwable caught, String reason, String details) {
- UtilsGXT3.alert(reason, details);
- close();
-
- }
-
- @Override
- public void operationStopped(OperationResult operationResult, String reason, String details) {
- ChangeTableWhy why = ChangeTableWhy.TABLECURATION;
- ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent(
- ChangeTableRequestType.RULESONCOLUMNAPPLY, operationResult.getTrId(), why);
- eventBus.fireEvent(changeTableRequestEvent);
- close();
-
- }
-
- @Override
- public void operationAborted() {
- close();
-
- }
-
- @Override
- public void operationPutInBackground() {
- close();
-
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleApplyPanel.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleApplyPanel.java
deleted file mode 100644
index 7c02be1..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleApplyPanel.java
+++ /dev/null
@@ -1,602 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-import org.gcube.portlets.user.td.columnwidget.client.properties.ColumnDataPropertiesCombo;
-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.client.rpc.TDGWTServiceAsync;
-import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsFinalException;
-import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsLockedException;
-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.ApplyAndDetachColumnRulesSession;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleDescriptionData;
-import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3;
-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.widgetcommonevent.shared.tr.column.ColumnData;
-
-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.gwt.user.client.ui.HTML;
-import com.google.web.bindery.event.shared.EventBus;
-import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
-import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
-import com.sencha.gxt.core.client.XTemplates;
-import com.sencha.gxt.core.client.util.Margins;
-import com.sencha.gxt.data.shared.LabelProvider;
-import com.sencha.gxt.data.shared.ListStore;
-import com.sencha.gxt.dnd.core.client.GridDragSource;
-import com.sencha.gxt.dnd.core.client.GridDropTarget;
-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.ComboBox;
-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;
-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.info.Info;
-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 RuleApplyPanel extends FramedPanel {
- private static final String RULE_TIP = "Tip.: Use drag and drop in order to change selected rules.
";
- private static final String RULES_GRID_HEIGHT = "184px";
- private static final String SET_RULES = "SetRules";
-
- interface RuleApplyTemplates extends XTemplates {
- @XTemplate("{value}")
- SafeHtml format(String value);
- }
-
- private static final String WIDTH = "630px";
- private static final String HEIGHT = "520px";
-
- private EventBus eventBus;
- private RuleApplyDialog parent;
- private TRId trId;
- private ArrayList columns;
- private ColumnData column;
- private AppliedRulesResponseData appliedRuleResponseData;
- private ArrayList applicableRules;
- private ArrayList appliedRules;
-
- private TextButton btnApply;
- private TextButton btnClose;
-
- private ComboBox comboColumns;
- private ListStore applicableRulesStore;
- private Grid gridApplicableRules;
- private ListStore selectedRulesStore;
- private Grid gridSelectedRules;
-
- public RuleApplyPanel(RuleApplyDialog parent, TRId trId, EventBus eventBus) {
- this.parent = parent;
- this.trId = trId;
- applicableRules = new ArrayList();
-
- Log.debug("RuleApplyPanel");
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setHeaderVisible(false);
- setBodyBorder(false);
- this.eventBus = eventBus;
- retrieveColumns();
-
- }
-
- protected void retrieveColumns() {
- TDGWTServiceAsync.INSTANCE.getColumns(trId,
- new AsyncCallback>() {
-
- @Override
- public void onFailure(Throwable caught) {
- if (caught instanceof TDGWTSessionExpiredException) {
- eventBus.fireEvent(new SessionExpiredEvent(
- SessionExpiredType.EXPIREDONSERVER));
- } else {
- if (caught instanceof TDGWTIsLockedException) {
- Log.error(caught.getLocalizedMessage());
- UtilsGXT3.alert("Error Locked",
- caught.getLocalizedMessage());
- } else {
- if (caught instanceof TDGWTIsFinalException) {
- Log.error(caught.getLocalizedMessage());
- UtilsGXT3.alert("Error Final",
- caught.getLocalizedMessage());
- } else {
- Log.debug("Error retrieving columns: "
- + caught.getLocalizedMessage());
- UtilsGXT3
- .alert("Error retrieving columns",
- "Error retrieving column on server!");
- }
- }
- }
-
- }
-
- @Override
- public void onSuccess(ArrayList result) {
- Log.debug("Retrieved Columns");
- if (result == null) {
- UtilsGXT3.alert("Error",
- "The requested columns is null");
- }
- columns = result;
-
- getAppliedBaseColumnRules();
-
- }
- });
- }
-
- protected void create() {
-
- Log.debug("Create RuleApplyPanel(): " + trId);
-
- FieldSet configurationFieldSet = new FieldSet();
- configurationFieldSet.setHeadingText("Configuration");
- configurationFieldSet.setCollapsible(false);
-
- VerticalLayoutContainer configurationFieldSetLayout = new VerticalLayoutContainer();
- configurationFieldSet.add(configurationFieldSetLayout);
-
- // Column Data
- ColumnDataPropertiesCombo propsColumnData = GWT
- .create(ColumnDataPropertiesCombo.class);
- ListStore storeCombo = new ListStore(
- propsColumnData.id());
- storeCombo.addAll(columns);
-
- Log.trace("StoreCombo created");
- comboColumns = new ComboBox(storeCombo,
- propsColumnData.label());
-
- Log.trace("Combo ColumnData created");
-
- addHandlersForComboColumn(propsColumnData.label());
- comboColumns.setEmptyText("Select a column...");
- comboColumns.setWidth(191);
- comboColumns.setTypeAhead(false);
- comboColumns.setEditable(false);
- comboColumns.setTriggerAction(TriggerAction.ALL);
-
- FieldLabel comboColumnsLabel = new FieldLabel(comboColumns, "Column");
- configurationFieldSetLayout.add(comboColumnsLabel,
- new VerticalLayoutData(1, -1, new Margins(0)));
-
- // Rules
-
- 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) {
- RuleApplyTemplates ruleApplyTemplates = GWT
- .create(RuleApplyTemplates.class);
- sb.append(ruleApplyTemplates.format(value));
- }
- });
-
- ColumnConfig descriptionCol = new ColumnConfig(
- propsRules.description(), 120, "Description");
- descriptionCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleApplyTemplates ruleApplyTemplates = GWT
- .create(RuleApplyTemplates.class);
- sb.append(ruleApplyTemplates.format(value));
- }
- });
-
- ColumnConfig ownerCol = new ColumnConfig(
- propsRules.ownerLogin(), 70, "Owner");
- ownerCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleApplyTemplates ruleApplyTemplates = GWT
- .create(RuleApplyTemplates.class);
- sb.append(ruleApplyTemplates.format(value));
- }
- });
-
- List> l = new ArrayList>();
- l.add(nameCol);
- l.add(descriptionCol);
- l.add(ownerCol);
- // l.add(readableExpressionCol);
-
- ColumnModel cm = new ColumnModel(
- l);
-
- StringFilter nameFilter = new StringFilter(
- propsRules.name());
- StringFilter descriptionFilter = new StringFilter(
- propsRules.description());
-
- // Applicable Rules
- applicableRulesStore = new ListStore(
- propsRules.id());
-
- gridApplicableRules = new Grid(
- applicableRulesStore, cm);
- gridApplicableRules.setHeight(RULES_GRID_HEIGHT);
- gridApplicableRules.getView().setStripeRows(true);
- gridApplicableRules.getView().setColumnLines(true);
- gridApplicableRules.getView().setAutoFill(true);
- gridApplicableRules.setBorders(false);
- gridApplicableRules.setLoadMask(true);
- gridApplicableRules.setColumnReordering(true);
- gridApplicableRules.setColumnResize(true);
- gridApplicableRules.getView().setAutoExpandColumn(descriptionCol);
-
- GridFilters filtersApplicableRules = new GridFilters();
- filtersApplicableRules.initPlugin(gridApplicableRules);
- filtersApplicableRules.setLocal(true);
- filtersApplicableRules.addFilter(nameFilter);
- filtersApplicableRules.addFilter(descriptionFilter);
-
- createContextMenu(gridApplicableRules);
-
- // Selected Rules
- selectedRulesStore = new ListStore(propsRules.id());
-
- gridSelectedRules = new Grid(selectedRulesStore,
- cm);
- gridSelectedRules.setHeight(RULES_GRID_HEIGHT);
- gridSelectedRules.getView().setStripeRows(true);
- gridSelectedRules.getView().setColumnLines(true);
- gridSelectedRules.getView().setAutoFill(true);
- gridSelectedRules.setBorders(false);
- gridSelectedRules.setLoadMask(true);
- gridSelectedRules.setColumnReordering(true);
- gridSelectedRules.setColumnResize(true);
- gridSelectedRules.getView().setAutoExpandColumn(descriptionCol);
-
- GridFilters filtersSelectedRules = new GridFilters();
- filtersSelectedRules.initPlugin(gridSelectedRules);
- filtersSelectedRules.setLocal(true);
- filtersSelectedRules.addFilter(nameFilter);
- filtersSelectedRules.addFilter(descriptionFilter);
-
- createContextMenu(gridSelectedRules);
-
- //
-
- new GridDragSource(gridApplicableRules)
- .setGroup(SET_RULES);
- new GridDragSource(gridSelectedRules)
- .setGroup(SET_RULES);
-
- new GridDropTarget(gridApplicableRules)
- .setGroup(SET_RULES);
- new GridDropTarget(gridSelectedRules)
- .setGroup(SET_RULES);
-
- //
- FieldLabel rulesApplicableLabel = new FieldLabel(gridApplicableRules,
- "Applicable Rules");
-
- configurationFieldSetLayout.add(rulesApplicableLabel,
- new VerticalLayoutData(1, -1, new Margins(0)));
-
- FieldLabel rulesSelectedLabel = new FieldLabel(gridSelectedRules,
- "Selected Rules");
-
- configurationFieldSetLayout.add(rulesSelectedLabel,
- new VerticalLayoutData(1, -1, new Margins(0)));
-
- //
- HTML rulesNote = new HTML(RULE_TIP);
- configurationFieldSetLayout.add(rulesNote,
- new VerticalLayoutData(-1, -1, new Margins(0)));
- // Button
- btnApply = new TextButton("Apply");
- btnApply.setIcon(TabularDataResources.INSTANCE.ruleColumnApply());
- btnApply.setIconAlign(IconAlign.RIGHT);
- btnApply.setToolTip("Apply Rule");
- btnApply.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- Log.debug("Pressed Apply");
- apply();
-
- }
- });
-
- btnClose = new TextButton("Close");
- btnClose.setIcon(TabularDataResources.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(btnApply, new BoxLayoutData(new Margins(2, 4, 2, 4)));
- flowButton.add(btnClose, new BoxLayoutData(new Margins(2, 4, 2, 4)));
-
- VerticalLayoutContainer v = new VerticalLayoutContainer();
- v.add(configurationFieldSet, new VerticalLayoutData(-1, -1,
- new Margins(0)));
- v.add(flowButton,
- new VerticalLayoutData(1, 36, new Margins(5, 2, 5, 2)));
- add(v);
-
- }
-
- private void addHandlersForComboColumn(
- final LabelProvider labelProvider) {
- comboColumns.addSelectionHandler(new SelectionHandler() {
- public void onSelection(SelectionEvent event) {
- Info.display(
- "Column Selected",
- "You selected "
- + (event.getSelectedItem() == null ? "nothing"
- : labelProvider.getLabel(event
- .getSelectedItem()) + "!"));
- Log.debug("ComboColumn selected: " + event.getSelectedItem());
- ColumnData columnData = event.getSelectedItem();
- updateRulesInGrids(columnData);
- }
-
- });
-
- }
-
- protected void updateRulesInGrids(ColumnData columnData) {
- column = columnData;
- applicableRulesStore.clear();
- selectedRulesStore.clear();
- HashMap> columnRuleMapping = appliedRuleResponseData
- .getColumnRuleMapping();
-
- if (columnRuleMapping != null) {
- ArrayList applied = columnRuleMapping
- .get(columnData.getColumnId());
-
- if (applied != null) {
- appliedRules = applied;
- selectedRulesStore.addAll(new ArrayList(
- applied));
-
- }
- }
- getApplicableBaseColumnRules();
-
- }
-
- protected void getApplicableBaseColumnRules() {
- ExpressionServiceAsync.INSTANCE.getApplicableBaseColumnRules(column,
- 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 applicable rules",
- caught.getLocalizedMessage());
- }
-
- }
-
- @Override
- public void onSuccess(ArrayList result) {
- Log.trace("loaded " + result.size() + " Rules");
- if (appliedRules != null && appliedRules.size() > 0) {
- ArrayList removableRules = new ArrayList();
- for (RuleDescriptionData ruleApplied : appliedRules) {
- for (RuleDescriptionData ruleApplicable : result) {
- if (ruleApplicable.equals(ruleApplied)) {
- removableRules.add(ruleApplicable);
- break;
- }
- }
-
- }
- result.removeAll(removableRules);
-
- }
- applicableRules = result;
- applicableRulesStore
- .addAll(new ArrayList(
- applicableRules));
-
- forceLayout();
-
- }
- });
-
- }
-
- protected void getAppliedBaseColumnRules() {
-
- 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 selected rules",
- caught.getLocalizedMessage());
- }
-
- }
-
- @Override
- public void onSuccess(AppliedRulesResponseData result) {
- Log.trace("AppliedRuleResponseData: " + result);
- appliedRuleResponseData = result;
- create();
- }
- });
-
- }
-
- protected ArrayList getSelectedItems() {
- List selectedItems = selectedRulesStore.getAll();
- ArrayList rulesSelected = new ArrayList(
- selectedItems);
- return rulesSelected;
- }
-
- protected void apply() {
- ColumnData column = comboColumns.getCurrentValue();
- if (column != null) {
- ArrayList selectedRules = getSelectedItems();
- if(selectedRules==null){
- selectedRules=new ArrayList();
- }
- ArrayList rulesThatWillBeDetach = new ArrayList();
- ArrayList rulesThatWillBeApplied = new ArrayList();
- HashMap> columnRuleMapping = appliedRuleResponseData
- .getColumnRuleMapping();
- if (columnRuleMapping != null) {
- ArrayList rulesApplied = columnRuleMapping
- .get(column.getColumnId());
- if (rulesApplied != null && rulesApplied.size() > 0) {
- for (RuleDescriptionData ruleApplied : rulesApplied) {
- boolean ruleStillApplied = false;
- for (RuleDescriptionData ruleSelected : selectedRules) {
- if (ruleSelected.getId() == ruleApplied.getId()) {
- ruleStillApplied = true;
- break;
- }
- }
-
- if (!ruleStillApplied) {
- rulesThatWillBeDetach.add(ruleApplied);
- }
- }
- }
- }
-
- for (RuleDescriptionData ruleSelected : selectedRules) {
- boolean ruleApplied = false;
-
- if (columnRuleMapping != null) {
- ArrayList rulesApplied = columnRuleMapping
- .get(column.getColumnId());
- if (rulesApplied != null) {
- for (RuleDescriptionData ruleAlreadyApplied : rulesApplied) {
- if (ruleSelected.getId() == ruleAlreadyApplied
- .getId()) {
- ruleApplied = true;
- break;
- }
- }
- } else {
-
- }
- } else {
-
- }
-
- if (ruleApplied == false) {
- rulesThatWillBeApplied.add(ruleSelected);
- }
- }
-
- if(rulesThatWillBeApplied.size()<=0&&rulesThatWillBeDetach.size()<=0){
- Log.error("Select a rule!");
- UtilsGXT3.alert("Attention", "Select a rule!");
- return;
- }
-
- ApplyAndDetachColumnRulesSession applyColumnRulesSession = new ApplyAndDetachColumnRulesSession(
- trId, column, rulesThatWillBeApplied, rulesThatWillBeDetach);
- parent.applyRules(applyColumnRulesSession);
-
- } else {
- Log.error("No column selected");
- UtilsGXT3.alert("Attention", "Select a column");
- }
- }
-
- protected void close() {
- parent.close();
- }
-
- 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.setIcon(TabularDataResources.INSTANCE.information());
- infoItem.addSelectionHandler(new SelectionHandler- () {
-
- @Override
- public void onSelection(SelectionEvent
- event) {
- RuleDescriptionData selected = grid.getSelectionModel()
- .getSelectedItem();
- Log.debug(selected.toString());
- requestInfo(selected);
- }
- });
-
- contextMenu.add(infoItem);
-
- grid.setContextMenu(contextMenu);
-
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleDeleteDialog.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleDeleteDialog.java
deleted file mode 100644
index d14b4b0..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleDeleteDialog.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import java.util.ArrayList;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-import org.gcube.portlets.user.td.expressionwidget.client.rpc.ExpressionServiceAsync;
-import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleDescriptionData;
-import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3;
-import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
-import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.web.bindery.event.shared.EventBus;
-import com.sencha.gxt.widget.core.client.Window;
-import com.sencha.gxt.widget.core.client.event.SelectEvent;
-import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
-
-/**
- *
- * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
- *
- */
-public class RuleDeleteDialog extends Window {
- private static final String WIDTH = "720px";
- private static final String HEIGHT = "530px";
- private EventBus eventBus;
- private RuleDeletePanel ruleDeletePanel;
-
- public RuleDeleteDialog(EventBus eventBus) {
- this.eventBus = eventBus;
- initWindow();
-
- ruleDeletePanel = new RuleDeletePanel(this,
- eventBus);
- add(ruleDeletePanel);
- }
-
- protected void initWindow() {
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setBodyBorder(false);
- setResizable(false);
- setHeadingText("Delete Rule");
- setClosable(true);
- setModal(true);
- forceLayoutOnResize = true;
- getHeader().setIcon(TabularDataResources.INSTANCE.ruleDelete());
-
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void initTools() {
- super.initTools();
-
- closeBtn.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- close();
- }
- });
-
- }
-
- protected void close() {
- hide();
- }
-
- protected void removeRule(
- ArrayList rules) {
-
- ExpressionServiceAsync.INSTANCE.removeRulesById(rules,
- new AsyncCallback() {
-
- @Override
- public void onSuccess(Void v) {
- Log.debug("Rule is deleted!");
- UtilsGXT3.info("Delete Rule", "The rule is deleted!");
- ruleDeletePanel.gridReload();
- }
-
- @Override
- public void onFailure(Throwable caught) {
- if (caught instanceof TDGWTSessionExpiredException) {
- eventBus.fireEvent(new SessionExpiredEvent(
- SessionExpiredType.EXPIREDONSERVER));
- } else {
- Log.error("Error deleting column rule: "
- + caught.getLocalizedMessage());
- caught.printStackTrace();
- UtilsGXT3.alert("Error deleting column rule",
- caught.getLocalizedMessage());
- }
- ruleDeletePanel.gridReload();
-
- }
- });
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleDeletePanel.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleDeletePanel.java
deleted file mode 100644
index 90d7add..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleDeletePanel.java
+++ /dev/null
@@ -1,430 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-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.RuleDescriptionData;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleScopeType;
-import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3;
-import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
-import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
-
-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.core.client.Scheduler;
-import com.google.gwt.core.client.Scheduler.ScheduledCommand;
-import com.google.gwt.event.dom.client.KeyUpEvent;
-import com.google.gwt.event.dom.client.KeyUpHandler;
-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.cell.core.client.ButtonCell.IconAlign;
-import com.sencha.gxt.core.client.IdentityValueProvider;
-import com.sencha.gxt.core.client.Style.SelectionMode;
-import com.sencha.gxt.core.client.XTemplates;
-import com.sencha.gxt.core.client.resources.ThemeStyles;
-import com.sencha.gxt.core.client.util.Margins;
-import com.sencha.gxt.data.client.loader.RpcProxy;
-import com.sencha.gxt.data.shared.ListStore;
-import com.sencha.gxt.data.shared.ModelKeyProvider;
-import com.sencha.gxt.data.shared.Store;
-import com.sencha.gxt.data.shared.Store.StoreFilter;
-import com.sencha.gxt.data.shared.loader.ListLoadConfig;
-import com.sencha.gxt.data.shared.loader.ListLoadResult;
-import com.sencha.gxt.data.shared.loader.ListLoadResultBean;
-import com.sencha.gxt.data.shared.loader.ListLoader;
-import com.sencha.gxt.data.shared.loader.LoadResultListStoreBinding;
-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.TextField;
-import com.sencha.gxt.widget.core.client.grid.CheckBoxSelectionModel;
-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.menu.Item;
-import com.sencha.gxt.widget.core.client.menu.Menu;
-import com.sencha.gxt.widget.core.client.menu.MenuItem;
-import com.sencha.gxt.widget.core.client.toolbar.LabelToolItem;
-import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
-
-public class RuleDeletePanel extends FramedPanel {
- private static final String WIDTH = "630px";
- private static final String HEIGHT = "520px";
-
- interface RuleDeleteTemplates extends XTemplates {
- @XTemplate("{value}")
- SafeHtml format(String value);
- }
-
- private EventBus eventBus;
- private RuleDeleteDialog parent;
-
- private TextButton btnDelete;
- private TextButton btnClose;
-
- private ListLoader> loader;
- private Grid grid;
- private ExtendedListStore store;
-
- public RuleDeletePanel(RuleDeleteDialog parent, EventBus eventBus) {
- this.parent = parent;
- Log.debug("RuleDeletePanel");
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setHeaderVisible(false);
- setBodyBorder(false);
- this.eventBus = eventBus;
-
- create();
-
- }
-
- protected void create() {
- ToolBar toolBarHead = new ToolBar();
- toolBarHead.add(new LabelToolItem("Search: "));
- final TextField searchField = new TextField();
- toolBarHead.add(searchField);
-
- TextButton btnReload = new TextButton();
- // btnReload.setText("Reload");
- btnReload.setIcon(TabularDataResources.INSTANCE.refresh());
- btnReload.setToolTip("Reload");
- toolBarHead.add(btnReload);
-
- IdentityValueProvider identity = new IdentityValueProvider();
- CheckBoxSelectionModel sm = new CheckBoxSelectionModel(
- identity);
-
- RuleDescriptionDataProperties props = GWT
- .create(RuleDescriptionDataProperties.class);
-
- ColumnConfig nameCol = new ColumnConfig(
- props.name(), 120, "Name");
-
- nameCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- ColumnConfig scopeCol = new ColumnConfig(
- props.scopeLabel(), 40, "Scope");
-
- nameCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- ColumnConfig descriptionCol = new ColumnConfig(
- props.description(), 120, "Description");
- descriptionCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- ColumnConfig ownerCol = new ColumnConfig(
- props.ownerLogin(), 70, "Owner");
- ownerCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- /*
- ColumnConfig readableExpressionCol = new ColumnConfig(
- props.readableExpression(), 160, "Expression");
-
- readableExpressionCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });*/
-
- List> l = new ArrayList>();
- l.add(nameCol);
- l.add(scopeCol);
- l.add(descriptionCol);
- l.add(ownerCol);
- //l.add(readableExpressionCol);
-
- ColumnModel cm = new ColumnModel(
- l);
-
- store = new ExtendedListStore(props.id());
-
- searchField.addKeyUpHandler(new KeyUpHandler() {
-
- public void onKeyUp(KeyUpEvent event) {
- Log.trace("searchTerm: " + searchField.getCurrentValue());
- store.applyFilters();
- }
- });
-
- store.addFilter(new StoreFilter() {
-
- @Override
- public boolean select(Store store,
- RuleDescriptionData parent, RuleDescriptionData item) {
- String searchTerm = searchField.getCurrentValue();
- if (searchTerm == null)
- return true;
- return RuleDeletePanel.this.select(item, searchTerm);
- }
- });
-
- store.setEnableFilters(true);
-
- RpcProxy> proxy = new RpcProxy>() {
-
- public void load(
- ListLoadConfig loadConfig,
- final AsyncCallback> callback) {
- loadData(loadConfig, callback);
- }
- };
- loader = new ListLoader>(
- proxy);
-
- loader.setRemoteSort(false);
- loader.addLoadHandler(new LoadResultListStoreBinding>(
- store) {
- });
-
- SelectHandler sh = new SelectHandler() {
- public void onSelect(SelectEvent event) {
- loader.load();
- }
- };
-
- btnReload.addSelectHandler(sh);
-
- grid = new Grid(store, cm) {
- @Override
- protected void onAfterFirstAttach() {
- super.onAfterFirstAttach();
- Scheduler.get().scheduleDeferred(new ScheduledCommand() {
-
- public void execute() {
- loader.load();
- }
- });
- }
- };
-
- sm.setSelectionMode(SelectionMode.MULTI);
- grid.setLoader(loader);
- grid.setSelectionModel(sm);
- grid.setHeight("384px");
- grid.getView().setStripeRows(true);
- grid.getView().setColumnLines(true);
- grid.getView().setAutoFill(true);
- grid.setBorders(false);
- grid.setLoadMask(true);
- grid.setColumnReordering(true);
- grid.setColumnResize(true);
- grid.getView().setAutoExpandColumn(descriptionCol);
-
- createContextMenu();
-
- ToolBar toolBar = new ToolBar();
- toolBar.add(grid);
- toolBar.addStyleName(ThemeStyles.get().style().borderTop());
- toolBar.getElement().getStyle().setProperty("borderBottom", "none");
-
- btnDelete = new TextButton("Delete");
- btnDelete.setIcon(TabularDataResources.INSTANCE.ruleDelete());
- btnDelete.setIconAlign(IconAlign.RIGHT);
- btnDelete.setToolTip("Delete");
- btnDelete.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- Log.debug("Pressed Delete");
- delete();
-
- }
- });
-
- btnClose = new TextButton("Close");
- btnClose.setIcon(TabularDataResources.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);
-
- BoxLayoutData boxLayoutData = new BoxLayoutData(new Margins(2, 4, 2, 4));
- flowButton.add(btnDelete, boxLayoutData);
- flowButton.add(btnClose, boxLayoutData);
-
- VerticalLayoutContainer v = new VerticalLayoutContainer();
- v.add(toolBarHead, new VerticalLayoutData(1, -1, new Margins(0)));
- v.add(grid, new VerticalLayoutData(1, -1, new Margins(0)));
- v.add(toolBar, new VerticalLayoutData(1, 25, new Margins(0)));
- v.add(flowButton,
- new VerticalLayoutData(1, 36, new Margins(5, 2, 5, 2)));
- add(v);
-
- }
-
- protected void loadData(ListLoadConfig loadConfig,
- final AsyncCallback> callback) {
-
- ExpressionServiceAsync.INSTANCE.getRules(RuleScopeType.COLUMN,
- new AsyncCallback>() {
-
- @Override
- public void onFailure(Throwable caught) {
- if (caught instanceof TDGWTSessionExpiredException) {
- eventBus.fireEvent(new SessionExpiredEvent(
- SessionExpiredType.EXPIREDONSERVER));
- } else {
- Log.error("Load rules failure:"
- + caught.getLocalizedMessage());
- UtilsGXT3.alert("Error retrieving rules",
- "Error retrieving rules");
- }
- callback.onFailure(caught);
-
- }
-
- @Override
- public void onSuccess(ArrayList result) {
- Log.trace("loaded " + result.size() + " Rules");
- callback.onSuccess(new ListLoadResultBean(
- result));
-
- }
- });
- }
-
- protected ArrayList getSelectedItem() {
- ArrayList rules = new ArrayList();
- for (RuleDescriptionData rule : grid.getSelectionModel()
- .getSelectedItems()) {
- rules.add(rule);
- }
- return rules;
- }
-
- protected void delete() {
- ArrayList rules = getSelectedItem();
- if (rules == null || rules.size() == 0) {
- UtilsGXT3.info("Attention", "Select the rule to be deleted");
- } else {
- Log.debug("Rules Delete: " + rules);
- parent.removeRule(rules);
-
- }
-
- }
-
- protected void close() {
- parent.close();
- }
-
- protected class ExtendedListStore extends ListStore {
-
- public ExtendedListStore(ModelKeyProvider super M> keyProvider) {
- super(keyProvider);
- }
-
- public void applyFilters() {
- super.applyFilters();
- }
-
- }
-
- public void gridReload() {
- grid.getLoader().load();
- }
-
- protected boolean select(RuleDescriptionData item, String searchTerm) {
- if (item.getName() != null
- && item.getName().toLowerCase()
- .contains(searchTerm.toLowerCase()))
- return true;
- if (item.getDescription() != null
- && item.getDescription().toLowerCase()
- .contains(searchTerm.toLowerCase()))
- return true;
- return false;
- }
-
- protected void requestInfo(RuleDescriptionData rule) {
-
- final RuleInfoDialog infoRuleDialog = new RuleInfoDialog(rule);
- infoRuleDialog.show();
-
-
- }
-
- protected void createContextMenu() {
- Menu contextMenu = new Menu();
-
- MenuItem infoItem = new MenuItem();
- infoItem.setText("Info");
- infoItem.setIcon(TabularDataResources.INSTANCE.information());
- infoItem.addSelectionHandler(new SelectionHandler
- () {
-
- @Override
- public void onSelection(SelectionEvent
- event) {
- RuleDescriptionData selected = grid.getSelectionModel()
- .getSelectedItem();
- Log.debug(selected.toString());
- requestInfo(selected);
- }
- });
-
- contextMenu.add(infoItem);
-
- grid.setContextMenu(contextMenu);
-
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleInfoDialog.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleInfoDialog.java
deleted file mode 100644
index ce4cd2f..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleInfoDialog.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleDescriptionData;
-
-import com.sencha.gxt.core.client.util.Margins;
-import com.sencha.gxt.widget.core.client.Dialog;
-import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
-import com.sencha.gxt.widget.core.client.container.MarginData;
-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.form.FieldSet;
-import com.sencha.gxt.widget.core.client.form.TextArea;
-import com.sencha.gxt.widget.core.client.form.TextField;
-
-
-/**
- *
- * @author giancarlo
- * email: g.panichi@isti.cnr.it
- *
- */
-public class RuleInfoDialog extends Dialog {
- RuleDescriptionData ruleDescriptionData;
-
- public RuleInfoDialog(RuleDescriptionData ruleDescriptionData){
- this.ruleDescriptionData=ruleDescriptionData;
- initWindow();
- create();
- }
-
- protected void initWindow(){
- setModal(true);
- setHeadingText("Info Rule");
- getHeader().setIcon(
- TabularDataResources.INSTANCE.information());
- setPredefinedButtons(PredefinedButton.OK);
- setHideOnButtonClick(true);
- setButtonAlign(BoxLayoutPack.CENTER);
- setWidth(500);
-
- }
-
- protected void create(){
- FieldSet configurationFieldSet = new FieldSet();
- configurationFieldSet.setHeadingText("Configuration");
- configurationFieldSet.setCollapsible(false);
- configurationFieldSet.setBorders(true);
-
- VerticalLayoutContainer configurationFieldSetLayout = new VerticalLayoutContainer();
- configurationFieldSet.add(configurationFieldSetLayout,
- new MarginData(0));
-
- TextField ruleName = new TextField();
- ruleName.setValue(ruleDescriptionData.getName());
- ruleName.setReadOnly(true);
- FieldLabel ruleNameLabel = new FieldLabel(ruleName, "Name");
- configurationFieldSetLayout.add(ruleNameLabel, new VerticalLayoutData(
- 1, -1, new Margins(0)));
-
- TextField ruleScope = new TextField();
- ruleScope.setValue(ruleDescriptionData.getScopeLabel());
- ruleScope.setReadOnly(true);
- FieldLabel ruleScopeLabel = new FieldLabel(ruleScope, "Scope");
- configurationFieldSetLayout.add(ruleScopeLabel, new VerticalLayoutData(
- 1, -1, new Margins(0)));
-
- TextArea ruleDescription = new TextArea();
- ruleDescription.setValue(ruleDescriptionData.getDescription());
- ruleDescription.setReadOnly(true);
- FieldLabel ruleDescriptionLabel = new FieldLabel(ruleDescription,
- "Description");
- configurationFieldSetLayout.add(ruleDescriptionLabel,
- new VerticalLayoutData(1, -1, new Margins(0)));
-
- TextField ruleOwner = new TextField();
- ruleOwner.setValue(ruleDescriptionData.getOwnerLogin());
- ruleOwner.setReadOnly(true);
- FieldLabel ruleOwnerLabel = new FieldLabel(ruleOwner, "Owner");
- configurationFieldSetLayout.add(ruleOwnerLabel, new VerticalLayoutData(
- 1, -1, new Margins(0)));
-
- TextArea ruleExpression = new TextArea();
- ruleExpression.setValue(ruleDescriptionData.getReadableExpression());
- ruleExpression.setReadOnly(true);
- ruleExpression.setHeight("82px");
- FieldLabel ruleExpressionLabel = new FieldLabel(ruleExpression,
- "Expression");
- configurationFieldSetLayout.add(ruleExpressionLabel,
- new VerticalLayoutData(1, -1, new Margins(0)));
-
- add(configurationFieldSet, new MarginData(0));
-
- }
-
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleOpenDialog.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleOpenDialog.java
deleted file mode 100644
index f8736e7..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleOpenDialog.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-import org.gcube.portlets.user.td.expressionwidget.client.RuleEditDialog;
-import org.gcube.portlets.user.td.expressionwidget.client.notification.RuleEditDialogNotification;
-import org.gcube.portlets.user.td.expressionwidget.client.notification.RuleEditDialogNotification.RuleEditDialogNotificationListener;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleDescriptionData;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.google.web.bindery.event.shared.EventBus;
-import com.sencha.gxt.widget.core.client.Window;
-import com.sencha.gxt.widget.core.client.event.SelectEvent;
-import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
-
-/**
- *
- * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
- *
- */
-public class RuleOpenDialog extends Window implements RuleEditDialogNotificationListener {
- private static final String WIDTH = "720px";
- private static final String HEIGHT = "530px";
- private RuleOpenPanel rulesOpenPanel;
- private EventBus eventBus;
-
- public RuleOpenDialog(EventBus eventBus) {
- this.eventBus=eventBus;
- initWindow();
- rulesOpenPanel= new RuleOpenPanel(this,
- eventBus);
- add(rulesOpenPanel);
- }
-
- protected void initWindow() {
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setBodyBorder(false);
- setResizable(false);
- setHeadingText("Open Rule");
- setClosable(true);
- setModal(true);
- forceLayoutOnResize = true;
- getHeader().setIcon(TabularDataResources.INSTANCE.ruleOpen());
-
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void initTools() {
- super.initTools();
-
- closeBtn.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- close();
- }
- });
-
- }
-
- protected void close() {
- hide();
- }
-
- public void ruleEdit(RuleDescriptionData ruleDescriptionData) {
- openRuleDialog(ruleDescriptionData);
-
- }
-
- protected void openRuleDialog(RuleDescriptionData ruleDescriptionData) {
- Log.debug("Request Open New Rule Dialog");
- RuleEditDialog reDialog = new RuleEditDialog(ruleDescriptionData,eventBus);
- reDialog.addRuleEditDialogNotificationListener(this);
- reDialog.show();
-
-
- /*RuleDialog cfDialog = new RuleDialog(ruleDescriptionData,eventBus);
- cfDialog.addRuleDialogNotificationListener(this);
- cfDialog.show();*/
-
-
- }
-
- @Override
- public void onNotification(RuleEditDialogNotification ruleEditDialogNotification) {
- rulesOpenPanel.gridReload();
-
- }
-
- @Override
- public void aborted() {
-
- }
-
- @Override
- public void failed(Throwable throwable) {
- Log.debug("Error in edit rule: "+throwable.getLocalizedMessage());
-
- }
-
-
-
-
-
-
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleOpenPanel.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleOpenPanel.java
deleted file mode 100644
index 975b335..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleOpenPanel.java
+++ /dev/null
@@ -1,436 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-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.RuleDescriptionData;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleScopeType;
-import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3;
-import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
-import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
-
-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.core.client.Scheduler;
-import com.google.gwt.core.client.Scheduler.ScheduledCommand;
-import com.google.gwt.event.dom.client.KeyUpEvent;
-import com.google.gwt.event.dom.client.KeyUpHandler;
-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.cell.core.client.ButtonCell.IconAlign;
-import com.sencha.gxt.core.client.IdentityValueProvider;
-import com.sencha.gxt.core.client.Style.SelectionMode;
-import com.sencha.gxt.core.client.XTemplates;
-import com.sencha.gxt.core.client.resources.ThemeStyles;
-import com.sencha.gxt.core.client.util.Margins;
-import com.sencha.gxt.data.client.loader.RpcProxy;
-import com.sencha.gxt.data.shared.ListStore;
-import com.sencha.gxt.data.shared.ModelKeyProvider;
-import com.sencha.gxt.data.shared.Store;
-import com.sencha.gxt.data.shared.Store.StoreFilter;
-import com.sencha.gxt.data.shared.loader.ListLoadConfig;
-import com.sencha.gxt.data.shared.loader.ListLoadResult;
-import com.sencha.gxt.data.shared.loader.ListLoadResultBean;
-import com.sencha.gxt.data.shared.loader.ListLoader;
-import com.sencha.gxt.data.shared.loader.LoadResultListStoreBinding;
-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.TextField;
-import com.sencha.gxt.widget.core.client.grid.CheckBoxSelectionModel;
-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.menu.Item;
-import com.sencha.gxt.widget.core.client.menu.Menu;
-import com.sencha.gxt.widget.core.client.menu.MenuItem;
-import com.sencha.gxt.widget.core.client.toolbar.LabelToolItem;
-import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
-
-/**
- *
- * @author giancarlo email: g.panichi@isti.cnr.it
- *
- */
-public class RuleOpenPanel extends FramedPanel {
- private static final String WIDTH = "630px";
- private static final String HEIGHT = "520px";
-
- interface RuleOpenTemplates extends XTemplates {
- @XTemplate("{value}")
- SafeHtml format(String value);
- }
-
- private EventBus eventBus;
- private RuleOpenDialog parent;
-
- private TextButton btnOpen;
- private TextButton btnClose;
-
- private ListLoader> loader;
- private Grid grid;
- private ExtendedListStore store;
-
- public RuleOpenPanel(RuleOpenDialog parent, EventBus eventBus) {
- this.parent = parent;
- Log.debug("RuleOpenPanel");
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setHeaderVisible(false);
- setBodyBorder(false);
- this.eventBus = eventBus;
-
- create();
-
- }
-
- protected void create() {
- ToolBar toolBarHead = new ToolBar();
- toolBarHead.add(new LabelToolItem("Search: "));
- final TextField searchField = new TextField();
- toolBarHead.add(searchField);
-
- TextButton btnReload = new TextButton();
- // btnReload.setText("Reload");
- btnReload.setIcon(TabularDataResources.INSTANCE.refresh());
- btnReload.setToolTip("Reload");
- toolBarHead.add(btnReload);
-
- IdentityValueProvider identity = new IdentityValueProvider();
- CheckBoxSelectionModel sm = new CheckBoxSelectionModel(
- identity);
-
- RuleDescriptionDataProperties props = GWT
- .create(RuleDescriptionDataProperties.class);
-
- ColumnConfig nameCol = new ColumnConfig(
- props.name(), 120, "Name");
-
- nameCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleOpenTemplates ruleOpenTemplates = GWT
- .create(RuleOpenTemplates.class);
- sb.append(ruleOpenTemplates.format(value));
- }
- });
-
- ColumnConfig scopeCol = new ColumnConfig(
- props.scopeLabel(), 40, "Scope");
-
- nameCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleOpenTemplates ruleOpenTemplates = GWT
- .create(RuleOpenTemplates.class);
- sb.append(ruleOpenTemplates.format(value));
- }
- });
-
- ColumnConfig descriptionCol = new ColumnConfig(
- props.description(), 120, "Description");
- descriptionCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleOpenTemplates ruleOpenTemplates = GWT
- .create(RuleOpenTemplates.class);
- sb.append(ruleOpenTemplates.format(value));
- }
- });
-
- ColumnConfig ownerCol = new ColumnConfig(
- props.ownerLogin(), 70, "Owner");
- ownerCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleOpenTemplates ruleOpenTemplates = GWT
- .create(RuleOpenTemplates.class);
- sb.append(ruleOpenTemplates.format(value));
- }
- });
-
- /*
- ColumnConfig readableExpressionCol = new ColumnConfig(
- props.readableExpression(), 160, "Expression");
-
- readableExpressionCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleOpenTemplates ruleOpenTemplates = GWT
- .create(RuleOpenTemplates.class);
- sb.append(ruleOpenTemplates.format(value));
- }
- });*/
-
- List> l = new ArrayList>();
- l.add(nameCol);
- l.add(scopeCol);
- l.add(descriptionCol);
- l.add(ownerCol);
- //l.add(readableExpressionCol);
-
- ColumnModel cm = new ColumnModel(
- l);
-
- store = new ExtendedListStore(props.id());
-
- searchField.addKeyUpHandler(new KeyUpHandler() {
-
- public void onKeyUp(KeyUpEvent event) {
- Log.trace("searchTerm: " + searchField.getCurrentValue());
- store.applyFilters();
- }
- });
-
- store.addFilter(new StoreFilter() {
-
- @Override
- public boolean select(Store store,
- RuleDescriptionData parent, RuleDescriptionData item) {
- String searchTerm = searchField.getCurrentValue();
- if (searchTerm == null)
- return true;
- return RuleOpenPanel.this.select(item, searchTerm);
- }
- });
-
- store.setEnableFilters(true);
-
- RpcProxy> proxy = new RpcProxy>() {
-
- public void load(
- ListLoadConfig loadConfig,
- final AsyncCallback> callback) {
- loadData(loadConfig, callback);
- }
- };
- loader = new ListLoader>(
- proxy);
-
- loader.setRemoteSort(false);
- loader.addLoadHandler(new LoadResultListStoreBinding>(
- store) {
- });
-
- SelectHandler sh = new SelectHandler() {
- public void onSelect(SelectEvent event) {
- loader.load();
- }
- };
-
- btnReload.addSelectHandler(sh);
-
- grid = new Grid(store, cm) {
- @Override
- protected void onAfterFirstAttach() {
- super.onAfterFirstAttach();
- Scheduler.get().scheduleDeferred(new ScheduledCommand() {
-
- public void execute() {
- loader.load();
- }
- });
- }
- };
-
- sm.setSelectionMode(SelectionMode.SINGLE);
- grid.setLoader(loader);
- grid.setSelectionModel(sm);
- grid.setHeight("384px");
- grid.getView().setStripeRows(true);
- grid.getView().setColumnLines(true);
- grid.getView().setAutoFill(true);
- grid.setBorders(false);
- grid.setLoadMask(true);
- grid.setColumnReordering(true);
- grid.setColumnResize(true);
- grid.getView().setAutoExpandColumn(descriptionCol);
-
- createContextMenu();
-
- ToolBar toolBar = new ToolBar();
- toolBar.add(grid);
- toolBar.addStyleName(ThemeStyles.get().style().borderTop());
- toolBar.getElement().getStyle().setProperty("borderBottom", "none");
-
- btnOpen = new TextButton("Edit");
- btnOpen.setIcon(TabularDataResources.INSTANCE.ruleEdit());
- btnOpen.setIconAlign(IconAlign.RIGHT);
- btnOpen.setToolTip("Edit Rule");
- btnOpen.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- Log.debug("Pressed Open");
- edit();
-
- }
- });
-
- btnClose = new TextButton("Close");
- btnClose.setIcon(TabularDataResources.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);
-
- BoxLayoutData boxLayoutData = new BoxLayoutData(new Margins(2, 4, 2, 4));
- flowButton.add(btnOpen, boxLayoutData);
- flowButton.add(btnClose, boxLayoutData);
-
- VerticalLayoutContainer v = new VerticalLayoutContainer();
- v.add(toolBarHead, new VerticalLayoutData(1, -1, new Margins(0)));
- v.add(grid, new VerticalLayoutData(1, -1, new Margins(0)));
- v.add(toolBar, new VerticalLayoutData(1, 25, new Margins(0)));
- v.add(flowButton,
- new VerticalLayoutData(1, 36, new Margins(5, 2, 5, 2)));
- add(v);
-
- }
-
- protected void loadData(ListLoadConfig loadConfig,
- final AsyncCallback> callback) {
-
- ExpressionServiceAsync.INSTANCE.getRules(RuleScopeType.COLUMN,
- new AsyncCallback>() {
-
- @Override
- public void onFailure(Throwable caught) {
- if (caught instanceof TDGWTSessionExpiredException) {
- eventBus.fireEvent(new SessionExpiredEvent(
- SessionExpiredType.EXPIREDONSERVER));
- } else {
- Log.error("Load rules failure:"
- + caught.getLocalizedMessage());
- UtilsGXT3.alert("Error retrieving rules",
- "Error retrieving rules");
- }
- callback.onFailure(caught);
-
- }
-
- @Override
- public void onSuccess(ArrayList result) {
- if (result != null) {
- Log.trace("loaded " + result.size() + " Rules");
- } else {
- Log.trace("get Rules return: null");
- }
- callback.onSuccess(new ListLoadResultBean(
- result));
-
- }
- });
-
- }
-
- protected RuleDescriptionData getSelectedItem() {
- RuleDescriptionData template = grid.getSelectionModel()
- .getSelectedItem();
- return template;
- }
-
- protected void edit() {
-
- RuleDescriptionData rule = getSelectedItem();
- if (rule == null) {
- UtilsGXT3.info("Attention", "Select the rule");
- } else {
- parent.ruleEdit(rule);
-
- }
-
- }
-
- protected void close() {
- parent.close();
- }
-
- protected class ExtendedListStore extends ListStore {
-
- public ExtendedListStore(ModelKeyProvider super M> keyProvider) {
- super(keyProvider);
- }
-
- public void applyFilters() {
- super.applyFilters();
- }
-
- }
-
- public void gridReload() {
- grid.getLoader().load();
- }
-
- protected boolean select(RuleDescriptionData item, String searchTerm) {
- if (item.getName() != null
- && item.getName().toLowerCase()
- .contains(searchTerm.toLowerCase()))
- return true;
- if (item.getDescription() != null
- && item.getDescription().toLowerCase()
- .contains(searchTerm.toLowerCase()))
- return true;
- return false;
- }
-
- protected void requestInfo(RuleDescriptionData rule) {
- final RuleInfoDialog infoRuleDialog = new RuleInfoDialog(rule);
- infoRuleDialog.show();
-
-
- }
-
- protected void createContextMenu() {
- Menu contextMenu = new Menu();
-
- MenuItem infoItem = new MenuItem();
- infoItem.setText("Info");
- infoItem.setIcon(TabularDataResources.INSTANCE.information());
- infoItem.addSelectionHandler(new SelectionHandler
- () {
-
- @Override
- public void onSelection(SelectionEvent
- event) {
- RuleDescriptionData selected = grid.getSelectionModel()
- .getSelectedItem();
- Log.debug(selected.toString());
- requestInfo(selected);
- }
- });
-
- contextMenu.add(infoItem);
-
- grid.setContextMenu(contextMenu);
-
- }
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleShareDialog.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleShareDialog.java
deleted file mode 100644
index c6ca539..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleShareDialog.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleDescriptionData;
-import org.gcube.portlets.user.td.sharewidget.client.RuleShare;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.google.web.bindery.event.shared.EventBus;
-import com.sencha.gxt.widget.core.client.Window;
-import com.sencha.gxt.widget.core.client.event.SelectEvent;
-import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
-
-/**
- *
- * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
- *
- */
-public class RuleShareDialog extends Window {
- private static final String WIDTH = "720px";
- private static final String HEIGHT = "530px";
-
- private EventBus eventBus;
-
- public RuleShareDialog(EventBus eventBus) {
- this.eventBus = eventBus;
- initWindow();
-
- RuleSharePanel templateDeletePanel = new RuleSharePanel(this,
- eventBus);
- add(templateDeletePanel);
- }
-
- protected void initWindow() {
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setBodyBorder(false);
- setResizable(false);
- setHeadingText("Share Rule");
- setClosable(true);
- setModal(true);
- forceLayoutOnResize = true;
- getHeader().setIcon(TabularDataResources.INSTANCE.ruleShare());
-
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void initTools() {
- super.initTools();
-
- closeBtn.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- close();
- }
- });
-
- }
-
- protected void close() {
- hide();
- }
-
-
- public void ruleShare(RuleDescriptionData ruleDescriptionData) {
- Log.debug("Share Window");
- @SuppressWarnings("unused")
- RuleShare ruleShare = new RuleShare(ruleDescriptionData, eventBus);
- close();
-
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleSharePanel.java b/src/main/java/org/gcube/portlets/user/td/client/rule/RuleSharePanel.java
deleted file mode 100644
index 0bd66b7..0000000
--- a/src/main/java/org/gcube/portlets/user/td/client/rule/RuleSharePanel.java
+++ /dev/null
@@ -1,422 +0,0 @@
-package org.gcube.portlets.user.td.client.rule;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.gcube.portlets.user.td.client.resource.TabularDataResources;
-import org.gcube.portlets.user.td.client.rule.RuleDeletePanel.RuleDeleteTemplates;
-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.RuleDescriptionData;
-import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleScopeType;
-import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3;
-import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
-import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
-
-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.core.client.Scheduler;
-import com.google.gwt.core.client.Scheduler.ScheduledCommand;
-import com.google.gwt.event.dom.client.KeyUpEvent;
-import com.google.gwt.event.dom.client.KeyUpHandler;
-import com.google.gwt.event.logical.shared.SelectionEvent;
-import com.google.gwt.event.logical.shared.SelectionHandler;
-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.IdentityValueProvider;
-import com.sencha.gxt.core.client.Style.SelectionMode;
-import com.sencha.gxt.core.client.resources.ThemeStyles;
-import com.sencha.gxt.core.client.util.Margins;
-import com.sencha.gxt.data.client.loader.RpcProxy;
-import com.sencha.gxt.data.shared.ListStore;
-import com.sencha.gxt.data.shared.ModelKeyProvider;
-import com.sencha.gxt.data.shared.Store;
-import com.sencha.gxt.data.shared.Store.StoreFilter;
-import com.sencha.gxt.data.shared.loader.ListLoadConfig;
-import com.sencha.gxt.data.shared.loader.ListLoadResult;
-import com.sencha.gxt.data.shared.loader.ListLoadResultBean;
-import com.sencha.gxt.data.shared.loader.ListLoader;
-import com.sencha.gxt.data.shared.loader.LoadResultListStoreBinding;
-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.TextField;
-import com.sencha.gxt.widget.core.client.grid.CheckBoxSelectionModel;
-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.menu.Item;
-import com.sencha.gxt.widget.core.client.menu.Menu;
-import com.sencha.gxt.widget.core.client.menu.MenuItem;
-import com.sencha.gxt.widget.core.client.toolbar.LabelToolItem;
-import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
-
-/**
- *
- * @author giancarlo email: g.panichi@isti.cnr.it
- *
- */
-public class RuleSharePanel extends FramedPanel {
- private static final String WIDTH = "630px";
- private static final String HEIGHT = "520px";
- private EventBus eventBus;
- private RuleShareDialog parent;
-
- private TextButton btnClose;
- private TextButton btnShare;
-
- private ListLoader> loader;
- private Grid grid;
- private ExtendedListStore store;
-
- public RuleSharePanel(RuleShareDialog parent, EventBus eventBus) {
- this.parent = parent;
- Log.debug("RuleSharePanel");
- setWidth(WIDTH);
- setHeight(HEIGHT);
- setHeaderVisible(false);
- setBodyBorder(false);
- this.eventBus = eventBus;
-
- create();
-
- }
-
- protected void create() {
- ToolBar toolBarHead = new ToolBar();
- toolBarHead.add(new LabelToolItem("Search: "));
- final TextField searchField = new TextField();
- toolBarHead.add(searchField);
-
- TextButton btnReload = new TextButton();
- // btnReload.setText("Reload");
- btnReload.setIcon(TabularDataResources.INSTANCE.refresh());
- btnReload.setToolTip("Reload");
- toolBarHead.add(btnReload);
-
- IdentityValueProvider identity = new IdentityValueProvider();
- CheckBoxSelectionModel sm = new CheckBoxSelectionModel(
- identity);
-
- RuleDescriptionDataProperties props = GWT
- .create(RuleDescriptionDataProperties.class);
-
- ColumnConfig nameCol = new ColumnConfig(
- props.name(), 120, "Name");
-
- nameCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- ColumnConfig scopeCol = new ColumnConfig(
- props.scopeLabel(), 40, "Scope");
-
- nameCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- ColumnConfig descriptionCol = new ColumnConfig(
- props.description(), 120, "Description");
- descriptionCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
- ColumnConfig ownerCol = new ColumnConfig(
- props.ownerLogin(), 70, "Owner");
- ownerCol.setCell(new AbstractCell() {
-
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- RuleDeleteTemplates ruleDeleteTemplates = GWT
- .create(RuleDeleteTemplates.class);
- sb.append(ruleDeleteTemplates.format(value));
- }
- });
-
-
- List> l = new ArrayList>();
- l.add(nameCol);
- l.add(scopeCol);
- l.add(descriptionCol);
- l.add(ownerCol);
-
-
- ColumnModel cm = new ColumnModel(l);
-
- store = new ExtendedListStore(props.id());
-
- searchField.addKeyUpHandler(new KeyUpHandler() {
-
- public void onKeyUp(KeyUpEvent event) {
- Log.trace("searchTerm: " + searchField.getCurrentValue());
- store.applyFilters();
- }
- });
-
- store.addFilter(new StoreFilter() {
-
- @Override
- public boolean select(Store store,
- RuleDescriptionData parent, RuleDescriptionData item) {
- String searchTerm = searchField.getCurrentValue();
- if (searchTerm == null)
- return true;
- return RuleSharePanel.this.select(item, searchTerm);
- }
- });
-
- store.setEnableFilters(true);
-
- RpcProxy> proxy = new RpcProxy>() {
-
- public void load(ListLoadConfig loadConfig,
- final AsyncCallback> callback) {
- loadData(loadConfig, callback);
- }
- };
- loader = new ListLoader>(
- proxy);
-
- loader.setRemoteSort(false);
- loader.addLoadHandler(new LoadResultListStoreBinding>(
- store) {
- });
-
- SelectHandler sh = new SelectHandler() {
- public void onSelect(SelectEvent event) {
- loader.load();
- }
- };
-
- btnReload.addSelectHandler(sh);
-
- grid = new Grid(store, cm) {
- @Override
- protected void onAfterFirstAttach() {
- super.onAfterFirstAttach();
- Scheduler.get().scheduleDeferred(new ScheduledCommand() {
-
- public void execute() {
- loader.load();
- }
- });
- }
- };
-
- sm.setSelectionMode(SelectionMode.SINGLE);
- grid.setLoader(loader);
- grid.setSelectionModel(sm);
- grid.setHeight("384px");
- grid.getView().setStripeRows(true);
- grid.getView().setColumnLines(true);
- grid.getView().setAutoFill(true);
- grid.setBorders(false);
- grid.setLoadMask(true);
- grid.setColumnReordering(true);
- grid.setColumnResize(true);
- grid.getView().setAutoExpandColumn(descriptionCol);
-
- createContextMenu();
-
-
- ToolBar toolBar = new ToolBar();
- toolBar.add(grid);
- toolBar.addStyleName(ThemeStyles.get().style().borderTop());
- toolBar.getElement().getStyle().setProperty("borderBottom", "none");
-
-
-
- btnClose = new TextButton("Close");
- btnClose.setIcon(TabularDataResources.INSTANCE.close());
- btnClose.setIconAlign(IconAlign.RIGHT);
- btnClose.setToolTip("Close");
- btnClose.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- Log.debug("Pressed Close");
- close();
- }
- });
-
- btnShare = new TextButton("Share");
- btnShare.setIcon(TabularDataResources.INSTANCE.ruleShare());
- btnShare.setIconAlign(IconAlign.RIGHT);
- btnShare.setToolTip("Share");
- btnShare.addSelectHandler(new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- Log.debug("Pressed Share");
- share();
- }
- });
-
- HBoxLayoutContainer flowButton = new HBoxLayoutContainer();
- flowButton.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE);
- flowButton.setPack(BoxLayoutPack.CENTER);
-
- BoxLayoutData boxLayoutData = new BoxLayoutData(new Margins(2, 4, 2, 4));
- flowButton.add(btnShare, boxLayoutData);
- flowButton.add(btnClose, boxLayoutData);
-
- VerticalLayoutContainer v = new VerticalLayoutContainer();
- v.add(toolBarHead, new VerticalLayoutData(1, -1, new Margins(0)));
- v.add(grid, new VerticalLayoutData(1, -1, new Margins(0)));
- v.add(toolBar, new VerticalLayoutData(1, 25, new Margins(0)));
- v.add(flowButton,
- new VerticalLayoutData(1, 36, new Margins(5, 2, 5, 2)));
- add(v);
-
- }
-
- protected void loadData(ListLoadConfig loadConfig,
- final AsyncCallback> callback) {
-
- ExpressionServiceAsync.INSTANCE.getRules(RuleScopeType.COLUMN,
- new AsyncCallback>() {
-
- @Override
- public void onFailure(Throwable caught) {
- if (caught instanceof TDGWTSessionExpiredException) {
- eventBus.fireEvent(new SessionExpiredEvent(
- SessionExpiredType.EXPIREDONSERVER));
- } else {
- Log.error("Load rules failure:"
- + caught.getLocalizedMessage());
- UtilsGXT3.alert("Error retrieving rules",
- "Error retrieving rules");
- }
- callback.onFailure(caught);
-
- }
-
- @Override
- public void onSuccess(ArrayList result) {
- Log.trace("loaded " + result.size() + " Rules");
- callback.onSuccess(new ListLoadResultBean(
- result));
-
- }
- });
-
- }
-
-
-
- protected ArrayList getSelectedItem() {
- ArrayList rules = new ArrayList();
- for (RuleDescriptionData rule : grid.getSelectionModel()
- .getSelectedItems()) {
- rules.add(rule);
- }
- return rules;
- }
-
-
- protected void share() {
-
- ArrayList rules = getSelectedItem();
- if (rules == null || rules.size() == 0) {
- UtilsGXT3.info("Attention", "Select the rule");
- } else {
- RuleDescriptionData rule = rules.get(0);
- Log.debug("templateShare: " + rule);
- parent.ruleShare(rule);
-
- }
-
- }
-
- protected void close() {
- parent.close();
- }
-
- protected class ExtendedListStore extends ListStore {
-
- public ExtendedListStore(ModelKeyProvider super M> keyProvider) {
- super(keyProvider);
- }
-
- public void applyFilters() {
- super.applyFilters();
- }
-
- }
-
- public void gridReload() {
- grid.getLoader().load();
- }
-
- protected boolean select(RuleDescriptionData item, String searchTerm) {
- if (item.getName() != null
- && item.getName().toLowerCase()
- .contains(searchTerm.toLowerCase()))
- return true;
- if (item.getDescription() != null
- && item.getDescription().toLowerCase()
- .contains(searchTerm.toLowerCase()))
- return true;
- return false;
- }
-
- protected void requestInfo(RuleDescriptionData rule) {
- final RuleInfoDialog infoRuleDialog = new RuleInfoDialog(rule);
- infoRuleDialog.show();
-
- }
-
- protected void createContextMenu() {
- Menu contextMenu = new Menu();
-
- MenuItem infoItem = new MenuItem();
- infoItem.setText("Info");
- infoItem.setIcon(TabularDataResources.INSTANCE.information());
- infoItem.addSelectionHandler(new SelectionHandler
- () {
-
- @Override
- public void onSelection(SelectionEvent
- event) {
- RuleDescriptionData selected = grid.getSelectionModel()
- .getSelectedItem();
- Log.debug(selected.toString());
- requestInfo(selected);
- }
- });
-
- contextMenu.add(infoItem);
-
- grid.setContextMenu(contextMenu);
-
- }
-
-
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml b/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml
index 8a4c1ea..2c14ea0 100644
--- a/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml
+++ b/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml
@@ -33,6 +33,7 @@
+
diff --git a/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml
index 26eaf26..2fe84cf 100644
--- a/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml
@@ -1,6 +1,5 @@
-
@@ -38,7 +37,8 @@
-
+
+
-->
-
+ -->