81: Allow the creation and use of expressions on multi column in TDM portlet
Task-Url: https://support.d4science.org/issues/81 Updated CreateRuleOnTableWizard git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-rule-widget@114838 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
944e3fb32b
commit
91f744b89e
|
@ -40,6 +40,7 @@
|
|||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/giancarlo/gwt/gwt-2.6.1/validation-api-1.0.0.GA.jar" sourcepath="/home/giancarlo/gwt/gwt-2.6.1/validation-api-1.0.0.GA-sources.jar"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
</MavenCoordinates>
|
||||
<Type>library</Type>
|
||||
<Files>
|
||||
<File>tabular-data-rule-widget-1.0.0-SNAPSHOT.jar</File>
|
||||
<File>tabular-data-rule-widget-1.0.0-SNAPSHOT.war</File>
|
||||
</Files>
|
||||
</Software>
|
||||
</Packages>
|
||||
|
|
4
pom.xml
4
pom.xml
|
@ -357,4 +357,8 @@
|
|||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<packaging>war</packaging>
|
||||
<issueManagement>
|
||||
<system>JIRA</system>
|
||||
</issueManagement>
|
||||
</project>
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
|
||||
|
||||
<!-- Specify the app entry point class. -->
|
||||
<!-- <entry-point class='org.gcube.portlets.user.td.rulewidget.client.RuleWidgetEntry'
|
||||
/> -->
|
||||
<entry-point class='org.gcube.portlets.user.td.rulewidget.client.RuleWidgetEntry'
|
||||
/>
|
||||
|
||||
|
||||
<!-- <set-configuration-property name="locale.cookie" value="TDLangCookie"
|
||||
|
|
|
@ -4,12 +4,14 @@ import org.gcube.portlets.user.td.expressionwidget.client.utils.UtilsGXT3;
|
|||
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.user.UserInfo;
|
||||
import org.gcube.portlets.user.td.rulewidget.client.multicolumn.CreateRuleOnTableWizard;
|
||||
|
||||
import com.allen_sauer.gwt.log.client.Log;
|
||||
import com.google.gwt.core.client.EntryPoint;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.event.shared.SimpleEventBus;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author "Giancarlo Panichi" <a
|
||||
|
@ -24,12 +26,16 @@ public class RuleWidgetEntry implements EntryPoint {
|
|||
|
||||
protected void test() {
|
||||
|
||||
// EventBus eventBus= new SimpleEventBus();
|
||||
EventBus eventBus = new SimpleEventBus();
|
||||
// TRId trId=new TRId("86",TabResourceType.STANDARD, "1159");
|
||||
|
||||
try {
|
||||
CreateRuleOnTableWizard createRuleOnTableWizard = new CreateRuleOnTableWizard(
|
||||
eventBus);
|
||||
createRuleOnTableWizard.show();
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* RemoveColumnDialog dialog=new RemoveColumnDialog(trId);
|
||||
* dialog.show(); ChangeToAnnotationColumnDialog changeToAnnotation=new
|
||||
|
|
|
@ -3,27 +3,58 @@ package org.gcube.portlets.user.td.rulewidget.client.multicolumn;
|
|||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.user.td.expressionwidget.client.properties.RuleColumnPlaceHolderDescriptorProperties;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.chart.ChartTopRatingSession;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleColumnPlaceHolderDescriptor;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.rule.type.TDRuleTableType;
|
||||
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.TableType;
|
||||
import org.gcube.portlets.user.td.rulewidget.client.resources.ResourceBundle;
|
||||
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
|
||||
import org.gcube.portlets.user.td.wizardwidget.client.WizardCard;
|
||||
import org.gcube.portlets.user.td.wizardwidget.client.util.UtilsGXT3;
|
||||
|
||||
import com.allen_sauer.gwt.log.client.Log;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.editor.client.Editor.Path;
|
||||
import com.google.gwt.user.client.Command;
|
||||
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.Style.SelectionMode;
|
||||
import com.sencha.gxt.core.client.util.Margins;
|
||||
import com.sencha.gxt.core.client.util.Padding;
|
||||
import com.sencha.gxt.data.shared.LabelProvider;
|
||||
import com.sencha.gxt.data.shared.ListStore;
|
||||
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
||||
import com.sencha.gxt.data.shared.PropertyAccess;
|
||||
import com.sencha.gxt.dnd.core.client.DND.Feedback;
|
||||
import com.sencha.gxt.dnd.core.client.DndDragStartEvent;
|
||||
import com.sencha.gxt.dnd.core.client.DndDragStartEvent.DndDragStartHandler;
|
||||
import com.sencha.gxt.dnd.core.client.GridDragSource;
|
||||
import com.sencha.gxt.dnd.core.client.GridDropTarget;
|
||||
import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
|
||||
import com.sencha.gxt.widget.core.client.button.ButtonBar;
|
||||
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||
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.event.BeforeStartEditEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.BeforeStartEditEvent.BeforeStartEditHandler;
|
||||
import com.sencha.gxt.widget.core.client.event.CancelEditEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.CancelEditEvent.CancelEditHandler;
|
||||
import com.sencha.gxt.widget.core.client.event.CompleteEditEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.CompleteEditEvent.CompleteEditHandler;
|
||||
import com.sencha.gxt.widget.core.client.event.HideEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler;
|
||||
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.FormPanel;
|
||||
import com.sencha.gxt.widget.core.client.form.TextField;
|
||||
import com.sencha.gxt.widget.core.client.form.validator.EmptyValidator;
|
||||
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.Grid.GridCell;
|
||||
import com.sencha.gxt.widget.core.client.grid.GridSelectionModel;
|
||||
import com.sencha.gxt.widget.core.client.grid.editing.GridRowEditing;
|
||||
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -33,12 +64,26 @@ import com.sencha.gxt.widget.core.client.grid.Grid;
|
|||
*/
|
||||
public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
||||
|
||||
public interface DataTypePropertiesCombo extends
|
||||
PropertyAccess<ColumnDataType> {
|
||||
|
||||
@Path("id")
|
||||
ModelKeyProvider<ColumnDataType> id();
|
||||
|
||||
LabelProvider<ColumnDataType> label();
|
||||
|
||||
}
|
||||
|
||||
private static int seq;
|
||||
private CreateRuleOnTableDefinitionCard thisCard;
|
||||
private TDRuleTableType tdRuleTableType;
|
||||
private Grid<RuleColumnPlaceHolderDescriptor> grid;
|
||||
private ListStore<RuleColumnPlaceHolderDescriptor> store;
|
||||
private boolean addStatus;
|
||||
|
||||
public CreateRuleOnTableDefinitionCard() {
|
||||
super("Columns Definition", "");
|
||||
super("Columns Definition",
|
||||
"N.B. Use drag and drop in order to change the position of the columns");
|
||||
this.thisCard = this;
|
||||
FormPanel panel = createPanel();
|
||||
setCenterWidget(panel, new MarginData(0));
|
||||
|
@ -50,12 +95,13 @@ public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
|||
panel.setLabelWidth(90);
|
||||
panel.getElement().setPadding(new Padding(5));
|
||||
|
||||
VerticalLayoutContainer content = new VerticalLayoutContainer();
|
||||
panel.add(content);
|
||||
VerticalLayoutContainer v = new VerticalLayoutContainer();
|
||||
panel.add(v);
|
||||
|
||||
// Grid
|
||||
RuleColumnPlaceHolderDescriptorProperties props = GWT
|
||||
.create(RuleColumnPlaceHolderDescriptorProperties.class);
|
||||
//
|
||||
|
||||
ColumnConfig<RuleColumnPlaceHolderDescriptor, String> labelColumn = new ColumnConfig<RuleColumnPlaceHolderDescriptor, String>(
|
||||
props.label(), 220, "Label");
|
||||
ColumnConfig<RuleColumnPlaceHolderDescriptor, ColumnDataType> columnDataTypeColumn = new ColumnConfig<RuleColumnPlaceHolderDescriptor, ColumnDataType>(
|
||||
|
@ -68,10 +114,13 @@ public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
|||
ColumnModel<RuleColumnPlaceHolderDescriptor> columns = new ColumnModel<RuleColumnPlaceHolderDescriptor>(
|
||||
l);
|
||||
|
||||
final ListStore<RuleColumnPlaceHolderDescriptor> store = new ListStore<RuleColumnPlaceHolderDescriptor>(
|
||||
props.id());
|
||||
store = new ListStore<RuleColumnPlaceHolderDescriptor>(props.id());
|
||||
|
||||
final GridSelectionModel<RuleColumnPlaceHolderDescriptor> sm = new GridSelectionModel<RuleColumnPlaceHolderDescriptor>();
|
||||
sm.setSelectionMode(SelectionMode.SINGLE);
|
||||
|
||||
grid = new Grid<RuleColumnPlaceHolderDescriptor>(store, columns);
|
||||
grid.setSelectionModel(sm);
|
||||
grid.getView().setStripeRows(true);
|
||||
grid.getView().setColumnLines(true);
|
||||
grid.getView().setAutoFill(true);
|
||||
|
@ -79,119 +128,191 @@ public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
|||
grid.setLoadMask(true);
|
||||
grid.setColumnReordering(false);
|
||||
grid.getView().setAutoExpandColumn(labelColumn);
|
||||
|
||||
// EDITING //
|
||||
/*
|
||||
SimpleComboBox<ColumnDataType> comboColumnDataType = new SimpleComboBox<ColumnDataType>(
|
||||
new StringLabelProvider<Light>());
|
||||
comboColumnDataType.setClearValueOnParseError(false);
|
||||
comboColumnDataType.setPropertyEditor(new PropertyEditor<ColumnDataType>() {
|
||||
@Override
|
||||
public Light parse(CharSequence text) throws ParseException {
|
||||
return Light.parseString(text.toString());
|
||||
}
|
||||
grid.getView().setSortingEnabled(false);
|
||||
|
||||
GridDragSource<RuleColumnPlaceHolderDescriptor> ds = new GridDragSource<RuleColumnPlaceHolderDescriptor>(
|
||||
grid);
|
||||
ds.addDragStartHandler(new DndDragStartHandler() {
|
||||
|
||||
@Override
|
||||
public String render(ColumnDataType object) {
|
||||
return object == null ? Light.SUNNY.toString() : object
|
||||
.toString();
|
||||
public void onDragStart(DndDragStartEvent event) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ArrayList<RuleColumnPlaceHolderDescriptor> draggingSelection = (ArrayList<RuleColumnPlaceHolderDescriptor>) event
|
||||
.getData();
|
||||
Log.debug("Start Drag: " + draggingSelection);
|
||||
|
||||
}
|
||||
});
|
||||
comboColumnDataType.setTriggerAction(TriggerAction.ALL);
|
||||
comboColumnDataType.add(Light.SUNNY);
|
||||
comboColumnDataType.add(Light.MOSTLYSUNNY);
|
||||
comboColumnDataType.add(Light.SUNORSHADE);
|
||||
comboColumnDataType.add(Light.MOSTLYSHADY);
|
||||
comboColumnDataType.add(Light.SHADE);
|
||||
GridDropTarget<RuleColumnPlaceHolderDescriptor> dt = new GridDropTarget<RuleColumnPlaceHolderDescriptor>(
|
||||
grid);
|
||||
dt.setFeedback(Feedback.BOTH);
|
||||
dt.setAllowSelfAsSource(true);
|
||||
|
||||
Converter<String, Light> lightConverter = new Converter<String, Light>() {
|
||||
@Override
|
||||
public String convertFieldValue(Light object) {
|
||||
return object == null ? "" : object.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Light convertModelValue(String object) {
|
||||
try {
|
||||
return Light.parseString(object);
|
||||
} catch (ParseException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
DateTimeFormat dateFormat = DateTimeFormat
|
||||
.getFormat(PredefinedFormat.DATE_SHORT);
|
||||
DateField dateField = new DateField(new DateTimePropertyEditor(
|
||||
dateFormat));
|
||||
dateField.setClearValueOnParseError(false);
|
||||
|
||||
final GridEditing<Plant> editing = createGridEditing(grid);
|
||||
editing.addEditor(labelColumn, new TextField());
|
||||
editing.addEditor(columnDataTypeColumn, lightConverter, comboColumnDataType);
|
||||
|
||||
|
||||
// EDITING //
|
||||
customizeGrid(grid);
|
||||
DataTypePropertiesCombo dataTypePropertiesCombo = GWT
|
||||
.create(DataTypePropertiesCombo.class);
|
||||
|
||||
TextButton addButton = new TextButton("Add Plant");
|
||||
ListStore<ColumnDataType> storeComboColumnDataType = new ListStore<ColumnDataType>(
|
||||
dataTypePropertiesCombo.id());
|
||||
storeComboColumnDataType.addAll(ColumnDataType.asList());
|
||||
|
||||
ComboBox<ColumnDataType> comboColumnDataType = new ComboBox<ColumnDataType>(
|
||||
storeComboColumnDataType, dataTypePropertiesCombo.label());
|
||||
comboColumnDataType.setClearValueOnParseError(false);
|
||||
|
||||
comboColumnDataType.setTriggerAction(TriggerAction.ALL);
|
||||
|
||||
final TextField labelField = new TextField();
|
||||
labelField.addValidator(new EmptyValidator<String>());
|
||||
|
||||
final GridRowEditing<RuleColumnPlaceHolderDescriptor> editing = new GridRowEditing<RuleColumnPlaceHolderDescriptor>(
|
||||
grid);
|
||||
editing.addEditor(labelColumn, labelField);
|
||||
editing.addEditor(columnDataTypeColumn, comboColumnDataType);
|
||||
|
||||
final TextButton addButton = new TextButton("Add Column");
|
||||
addButton.setIcon(ResourceBundle.INSTANCE.columnAdd24());
|
||||
addButton.setIconAlign(IconAlign.TOP);
|
||||
addButton.setToolTip("Add Column");
|
||||
addButton.addSelectHandler(new SelectHandler() {
|
||||
|
||||
@Override
|
||||
public void onSelect(SelectEvent event) {
|
||||
Plant plant = new Plant();
|
||||
plant.setName("New Plant 1");
|
||||
plant.setLight("Mostly Shady");
|
||||
plant.setPrice(0);
|
||||
plant.setAvailable(new DateWrapper().clearTime().asDate());
|
||||
plant.setIndoor(false);
|
||||
store.size();
|
||||
RuleColumnPlaceHolderDescriptor descriptor = new RuleColumnPlaceHolderDescriptor(
|
||||
String.valueOf(seq++), "", ColumnDataType.Text);
|
||||
|
||||
editing.cancelEditing();
|
||||
store.add(0, plant);
|
||||
addStatus = true;
|
||||
editing.getCancelButton().setVisible(false);
|
||||
store.add(descriptor);
|
||||
|
||||
int row = store.indexOf(plant);
|
||||
int row = store.indexOf(descriptor);
|
||||
editing.startEditing(new GridCell(row, 0));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
TextButton deleteBtn = new TextButton("Delete");
|
||||
deleteBtn.addSelectHandler(new SelectEvent.SelectHandler() {
|
||||
public void onSelect(SelectEvent event) {
|
||||
GridCell cell = editing.getActiveCell();
|
||||
int rowIndex = cell.getRow();
|
||||
|
||||
editing.cancelEditing();
|
||||
|
||||
store.remove(rowIndex);
|
||||
store.commitChanges();
|
||||
|
||||
editing.getCancelButton().setVisible(true);
|
||||
addButton.setEnabled(true);
|
||||
setEnableNextButton(true);
|
||||
if (addStatus) {
|
||||
addStatus = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
ButtonBar buttonBar = editing.getButtonBar();
|
||||
buttonBar.add(deleteBtn);
|
||||
|
||||
editing.addBeforeStartEditHandler(new BeforeStartEditHandler<RuleColumnPlaceHolderDescriptor>() {
|
||||
|
||||
@Override
|
||||
public void onBeforeStartEdit(
|
||||
BeforeStartEditEvent<RuleColumnPlaceHolderDescriptor> event) {
|
||||
addButton.setEnabled(false);
|
||||
setEnableNextButton(false);
|
||||
}
|
||||
});
|
||||
|
||||
editing.addCancelEditHandler(new CancelEditHandler<RuleColumnPlaceHolderDescriptor>() {
|
||||
|
||||
@Override
|
||||
public void onCancelEdit(
|
||||
CancelEditEvent<RuleColumnPlaceHolderDescriptor> event) {
|
||||
store.rejectChanges();
|
||||
addButton.setEnabled(true);
|
||||
setEnableNextButton(true);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
editing.addCompleteEditHandler(new CompleteEditHandler<RuleColumnPlaceHolderDescriptor>() {
|
||||
|
||||
@Override
|
||||
public void onCompleteEdit(
|
||||
CompleteEditEvent<RuleColumnPlaceHolderDescriptor> event) {
|
||||
try {
|
||||
|
||||
String label = labelField.getCurrentValue();
|
||||
Log.debug("Current Label: " + label);
|
||||
|
||||
boolean exist = false;
|
||||
GridCell cell = event.getEditCell();
|
||||
int rowIndex = cell.getRow();
|
||||
RuleColumnPlaceHolderDescriptor ruleColumnPlaceHolderDescriptor = store
|
||||
.get(rowIndex);
|
||||
|
||||
Log.debug("Store: " + store.getAll().toString());
|
||||
for (RuleColumnPlaceHolderDescriptor descriptor : store
|
||||
.getAll()) {
|
||||
if (ruleColumnPlaceHolderDescriptor.getId().compareTo(
|
||||
descriptor.getId()) != 0
|
||||
&& label.compareToIgnoreCase(descriptor
|
||||
.getLabel()) == 0) {
|
||||
exist = true;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Log.debug("Exist: " + exist);
|
||||
if (exist) {
|
||||
Log.debug("AddStatus: " + addStatus);
|
||||
if (addStatus) {
|
||||
addStatus = false;
|
||||
store.remove(rowIndex);
|
||||
store.commitChanges();
|
||||
} else {
|
||||
store.rejectChanges();
|
||||
}
|
||||
UtilsGXT3
|
||||
.alert("Attention",
|
||||
"This label is already present, please choose another(case insensitive)!");
|
||||
} else {
|
||||
store.commitChanges();
|
||||
}
|
||||
|
||||
editing.getCancelButton().setVisible(true);
|
||||
addButton.setEnabled(true);
|
||||
setEnableNextButton(true);
|
||||
|
||||
} catch (Throwable e) {
|
||||
Log.error("Error in CreateRuleOnTableDefinitionCard: "
|
||||
+ e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
ToolBar toolBar = new ToolBar();
|
||||
toolBar.add(addButton);
|
||||
|
||||
VerticalLayoutContainer verticalLayoutContainer = new VerticalLayoutContainer();
|
||||
verticalLayoutContainer.setBorders(true);
|
||||
verticalLayoutContainer.add(toolBar, new VerticalLayoutData(1, -1));
|
||||
verticalLayoutContainer.add(grid, new VerticalLayoutData(1, 1));
|
||||
|
||||
panel = new FramedPanel();
|
||||
panel.setHeadingText("Editable Grid Example");
|
||||
panel.setPixelSize(600, 400);
|
||||
panel.addStyleName("margin-10");
|
||||
panel.setWidget(verticalLayoutContainer);
|
||||
|
||||
panel.setButtonAlign(BoxLayoutPack.CENTER);
|
||||
panel.addButton(new TextButton("Reset", new SelectHandler() {
|
||||
@Override
|
||||
public void onSelect(SelectEvent event) {
|
||||
store.rejectChanges();
|
||||
}
|
||||
}));
|
||||
|
||||
panel.addButton(new TextButton("Save", new SelectHandler() {
|
||||
@Override
|
||||
public void onSelect(SelectEvent event) {
|
||||
store.commitChanges();
|
||||
}
|
||||
}));*/
|
||||
v.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||
v.add(grid, new VerticalLayoutData(1, 1, new Margins(0)));
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setup() {
|
||||
Log.debug("ChartSelectionCard Setup");
|
||||
Log.debug("CreateRuleOnTableDefinitionCard Setup");
|
||||
Command sayNextCard = new Command() {
|
||||
|
||||
public void execute() {
|
||||
Log.debug("ChartSelectionCard Call sayNextCard");
|
||||
Log.debug("CreateRuleOnTableDefinitionCard Call sayNextCard");
|
||||
checkData();
|
||||
}
|
||||
|
||||
|
@ -202,7 +323,7 @@ public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
|||
try {
|
||||
getWizardWindow().previousCard();
|
||||
getWizardWindow().removeCard(thisCard);
|
||||
Log.info("Remove ChartSelectionCard");
|
||||
Log.info("Remove CreateRuleOnTableDefinitionCard");
|
||||
} catch (Exception e) {
|
||||
Log.error("sayPreviousCard :" + e.getLocalizedMessage());
|
||||
}
|
||||
|
@ -213,6 +334,7 @@ public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
|||
getWizardWindow().setNextButtonCommand(sayNextCard);
|
||||
|
||||
setEnableBackButton(false);
|
||||
setBackButtonVisible(false);
|
||||
setEnableNextButton(true);
|
||||
}
|
||||
|
||||
|
@ -228,65 +350,35 @@ public class CreateRuleOnTableDefinitionCard extends WizardCard {
|
|||
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
if (chartTypeSelected == null) {
|
||||
|
||||
if (store == null || store.size() <= 0) {
|
||||
AlertMessageBox d = new AlertMessageBox("Attention",
|
||||
"No chart selected");
|
||||
"Add at least one column");
|
||||
d.addHideHandler(hideHandler);
|
||||
d.setModal(false);
|
||||
d.show();
|
||||
return;
|
||||
}
|
||||
|
||||
switch (chartTypeSelected) {
|
||||
case TopRating:
|
||||
checkTopRating();
|
||||
break;
|
||||
default:
|
||||
AlertMessageBox d = new AlertMessageBox("Attention",
|
||||
"No chart selected");
|
||||
d.addHideHandler(hideHandler);
|
||||
d.setModal(false);
|
||||
d.show();
|
||||
break;
|
||||
tdRuleTableType = new TDRuleTableType(
|
||||
new ArrayList<RuleColumnPlaceHolderDescriptor>(store.getAll()));
|
||||
|
||||
goNext();
|
||||
}
|
||||
|
||||
protected void goNext(){
|
||||
try {
|
||||
CreateRuleOnTableExpressionCard createRuleOnTableExpressionCard = new CreateRuleOnTableExpressionCard(
|
||||
tdRuleTableType);
|
||||
getWizardWindow().addCard(createRuleOnTableExpressionCard);
|
||||
getWizardWindow().nextCard();
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.error("sayNextCard :" + e.getLocalizedMessage());
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
protected void checkTopRating() {
|
||||
String tableTypeName = chartSession.getTrId().getTableTypeName();
|
||||
if (tableTypeName.compareTo(TableType.DATASET.toString()) == 0) {
|
||||
try {
|
||||
ChartTopRatingSession chartTopRatingSession = new ChartTopRatingSession();
|
||||
chartTopRatingSession.setTrId(chartSession.getTrId());
|
||||
TopRatingColumnSelectionCard topRatingColumnSelectionCard = new TopRatingColumnSelectionCard(
|
||||
chartSession, chartTopRatingSession);
|
||||
getWizardWindow().addCard(topRatingColumnSelectionCard);
|
||||
getWizardWindow().nextCard();
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.error("sayNextCard :" + e.getLocalizedMessage());
|
||||
}
|
||||
} else {
|
||||
AlertMessageBox d = new AlertMessageBox("Attention",
|
||||
"Chart not applicable, table is not a Dataset!");
|
||||
d.addHideHandler(new HideHandler() {
|
||||
|
||||
public void onHide(HideEvent event) {
|
||||
getWizardWindow().setEnableNextButton(true);
|
||||
getWizardWindow().setEnableBackButton(false);
|
||||
|
||||
}
|
||||
});
|
||||
d.setModal(false);
|
||||
d.show();
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
|
|
|
@ -0,0 +1,174 @@
|
|||
package org.gcube.portlets.user.td.rulewidget.client.multicolumn;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.user.td.expressionwidget.client.properties.RuleColumnPlaceHolderDescriptorProperties;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.rule.RuleColumnPlaceHolderDescriptor;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.rule.type.TDRuleTableType;
|
||||
import org.gcube.portlets.user.td.rulewidget.client.resources.ResourceBundle;
|
||||
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
|
||||
import org.gcube.portlets.user.td.wizardwidget.client.WizardCard;
|
||||
import org.gcube.portlets.user.td.wizardwidget.client.util.UtilsGXT3;
|
||||
|
||||
import com.allen_sauer.gwt.log.client.Log;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.editor.client.Editor.Path;
|
||||
import com.google.gwt.user.client.Command;
|
||||
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.Style.SelectionMode;
|
||||
import com.sencha.gxt.core.client.util.Margins;
|
||||
import com.sencha.gxt.core.client.util.Padding;
|
||||
import com.sencha.gxt.data.shared.LabelProvider;
|
||||
import com.sencha.gxt.data.shared.ListStore;
|
||||
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
||||
import com.sencha.gxt.data.shared.PropertyAccess;
|
||||
import com.sencha.gxt.dnd.core.client.DND.Feedback;
|
||||
import com.sencha.gxt.dnd.core.client.DndDragStartEvent;
|
||||
import com.sencha.gxt.dnd.core.client.DndDragStartEvent.DndDragStartHandler;
|
||||
import com.sencha.gxt.dnd.core.client.GridDragSource;
|
||||
import com.sencha.gxt.dnd.core.client.GridDropTarget;
|
||||
import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
|
||||
import com.sencha.gxt.widget.core.client.button.ButtonBar;
|
||||
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||
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.event.BeforeStartEditEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.BeforeStartEditEvent.BeforeStartEditHandler;
|
||||
import com.sencha.gxt.widget.core.client.event.CancelEditEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.CancelEditEvent.CancelEditHandler;
|
||||
import com.sencha.gxt.widget.core.client.event.CompleteEditEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.CompleteEditEvent.CompleteEditHandler;
|
||||
import com.sencha.gxt.widget.core.client.event.HideEvent;
|
||||
import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler;
|
||||
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.FormPanel;
|
||||
import com.sencha.gxt.widget.core.client.form.TextField;
|
||||
import com.sencha.gxt.widget.core.client.form.validator.EmptyValidator;
|
||||
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.Grid.GridCell;
|
||||
import com.sencha.gxt.widget.core.client.grid.GridSelectionModel;
|
||||
import com.sencha.gxt.widget.core.client.grid.editing.GridRowEditing;
|
||||
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author "Giancarlo Panichi" <a
|
||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||
*
|
||||
*/
|
||||
public class CreateRuleOnTableExpressionCard extends WizardCard {
|
||||
|
||||
private CreateRuleOnTableExpressionCard thisCard;
|
||||
private TDRuleTableType tdRuleTableType;
|
||||
|
||||
public CreateRuleOnTableExpressionCard(TDRuleTableType tdRuleTableType) {
|
||||
super("Create Expression",
|
||||
"");
|
||||
this.thisCard = this;
|
||||
this.tdRuleTableType=tdRuleTableType;
|
||||
FormPanel panel = createPanel();
|
||||
setCenterWidget(panel, new MarginData(0));
|
||||
|
||||
}
|
||||
|
||||
protected FormPanel createPanel() {
|
||||
FormPanel panel = new FormPanel();
|
||||
panel.setLabelWidth(90);
|
||||
panel.getElement().setPadding(new Padding(5));
|
||||
|
||||
VerticalLayoutContainer v = new VerticalLayoutContainer();
|
||||
panel.add(v);
|
||||
|
||||
//v.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setup() {
|
||||
Log.debug("CreateRuleOnTableExpressionCard Setup");
|
||||
Command sayNextCard = new Command() {
|
||||
|
||||
public void execute() {
|
||||
Log.debug("CreateRuleOnTableExpressionCard Call sayNextCard");
|
||||
checkData();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Command sayPreviousCard = new Command() {
|
||||
public void execute() {
|
||||
try {
|
||||
getWizardWindow().previousCard();
|
||||
getWizardWindow().removeCard(thisCard);
|
||||
Log.info("Remove CreateRuleOnTableExpressionCard");
|
||||
} catch (Exception e) {
|
||||
Log.error("sayPreviousCard :" + e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
getWizardWindow().setPreviousButtonCommand(sayPreviousCard);
|
||||
getWizardWindow().setNextButtonCommand(sayNextCard);
|
||||
|
||||
setBackButtonVisible(true);
|
||||
setEnableBackButton(true);
|
||||
setEnableNextButton(true);
|
||||
}
|
||||
|
||||
protected void checkData() {
|
||||
getWizardWindow().setEnableNextButton(false);
|
||||
getWizardWindow().setEnableBackButton(false);
|
||||
|
||||
HideHandler hideHandler = new HideHandler() {
|
||||
|
||||
public void onHide(HideEvent event) {
|
||||
getWizardWindow().setEnableNextButton(true);
|
||||
getWizardWindow().setEnableBackButton(false);
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
/*if (store == null || store.size() <= 0) {
|
||||
AlertMessageBox d = new AlertMessageBox("Attention",
|
||||
"Add at least one column");
|
||||
d.addHideHandler(hideHandler);
|
||||
d.setModal(false);
|
||||
d.show();
|
||||
return;
|
||||
}
|
||||
|
||||
tdRuleTableType = new TDRuleTableType(
|
||||
new ArrayList<RuleColumnPlaceHolderDescriptor>(store.getAll()));
|
||||
*/
|
||||
goNext();
|
||||
}
|
||||
|
||||
protected void goNext(){
|
||||
/*try {
|
||||
ChartTopRatingSession chartTopRatingSession = new ChartTopRatingSession();
|
||||
chartTopRatingSession.setTrId(chartSession.getTrId());
|
||||
TopRatingColumnSelectionCard topRatingColumnSelectionCard = new TopRatingColumnSelectionCard(
|
||||
chartSession, chartTopRatingSession);
|
||||
getWizardWindow().addCard(topRatingColumnSelectionCard);
|
||||
getWizardWindow().nextCard();
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.error("sayNextCard :" + e.getLocalizedMessage());
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -2,7 +2,6 @@ package org.gcube.portlets.user.td.rulewidget.client.multicolumn;
|
|||
|
||||
|
||||
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.rule.description.RuleDescriptionData;
|
||||
import org.gcube.portlets.user.td.wizardwidget.client.WizardWindow;
|
||||
|
||||
import com.allen_sauer.gwt.log.client.Log;
|
||||
|
|
|
@ -126,5 +126,17 @@ public interface ResourceBundle extends ClientBundle {
|
|||
|
||||
@Source("information.png")
|
||||
ImageResource information();
|
||||
|
||||
@Source("column-add_32.png")
|
||||
ImageResource columnAdd32();
|
||||
|
||||
@Source("column-add_24.png")
|
||||
ImageResource columnAdd24();
|
||||
|
||||
@Source("column-add.png")
|
||||
ImageResource columnAdd();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 855 B |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
|
@ -7,16 +7,16 @@
|
|||
<!-- We need the JUnit module in the main module, -->
|
||||
<!-- otherwise eclipse complains (Google plugin bug?) -->
|
||||
<inherits name='com.google.gwt.junit.JUnit' />
|
||||
|
||||
|
||||
<!-- Other module inherits -->
|
||||
<inherits name='com.sencha.gxt.ui.GXT' />
|
||||
|
||||
|
||||
<!-- GXT Theme -->
|
||||
<!-- <inherits name='com.sencha.gxt.theme.blue.Blue' /> -->
|
||||
<!-- <inherits name='com.sencha.gxt.theme.gray.Gray' /> -->
|
||||
<!-- Be sure to include Neptunes gxt-theme-neptune.jar in the classpath -->
|
||||
<!-- <inherits name='com.sencha.gxt.theme.neptune.Theme' /> -->
|
||||
|
||||
|
||||
<inherits name="com.allen_sauer.gwt.log.gwt-log-TRACE" />
|
||||
|
||||
<inherits name='org.gcube.portlets.user.td.gwtservice.TDGWTService' />
|
||||
|
@ -27,6 +27,9 @@
|
|||
<inherits name='org.gcube.portlets.user.td.sharewidget.ShareWidget' />
|
||||
|
||||
|
||||
<!-- Specify the app entry point class. -->
|
||||
<entry-point
|
||||
class='org.gcube.portlets.user.td.rulewidget.client.RuleWidgetEntry' />
|
||||
|
||||
<!-- <set-configuration-property name="locale.cookie" value="TDLangCookie"
|
||||
/> <set-configuration-property name="locale.queryparam" value="TDLang" />
|
||||
|
@ -37,18 +40,17 @@
|
|||
name="locale" values="es" /> <set-property name="locale" value="en, it, es"
|
||||
/> <set-property-fallback name="locale" value="en" /> -->
|
||||
|
||||
<!-- <set-property name="log_ConsoleLogger" value="ENABLED" /> <set-property
|
||||
name="log_DivLogger" value="ENABLED" /> <set-property name="log_GWTLogger"
|
||||
value="ENABLED" /> <set-property name="log_SystemLogger" value="ENABLED"
|
||||
/> -->
|
||||
<set-property name="log_ConsoleLogger" value="ENABLED" />
|
||||
<set-property name="log_DivLogger" value="ENABLED" />
|
||||
<set-property name="log_GWTLogger" value="ENABLED" />
|
||||
<set-property name="log_SystemLogger" value="ENABLED" />
|
||||
<!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="ENABLED"
|
||||
/> -->
|
||||
|
||||
|
||||
<set-property name="log_ConsoleLogger" value="DISABLED" />
|
||||
<set-property name="log_DivLogger" value="DISABLED" />
|
||||
<set-property name="log_GWTLogger" value="DISABLED" />
|
||||
<set-property name="log_SystemLogger" value="DISABLED" />
|
||||
<!-- <set-property name="log_ConsoleLogger" value="DISABLED" /> <set-property
|
||||
name="log_DivLogger" value="DISABLED" /> <set-property name="log_GWTLogger"
|
||||
value="DISABLED" /> <set-property name="log_SystemLogger" value="DISABLED"
|
||||
/> -->
|
||||
<!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="DISABLED"
|
||||
/> -->
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 855 B |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
Loading…
Reference in New Issue