Fixing svn bug

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-expression-widget@90230 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-01-20 10:30:20 +00:00
parent aac25e9e4d
commit d09427353a
68 changed files with 2106 additions and 0 deletions

37
.classpath Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/tabular-data-expression-widget-1.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/tabular-data-expression-widget-1.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<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="output" path="target/tabular-data-expression-widget-1.0.0-SNAPSHOT/WEB-INF/classes"/>
</classpath>

53
.project Normal file
View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>tabular-data-expression-widget</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>com.google.gwt.eclipse.core.gwtNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>

13
.settings/.jsdtscope Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="target/m2e-wtp/web-resources"/>
<classpathentry kind="src" path="src/main/webapp"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>

View File

@ -0,0 +1,4 @@
eclipse.preferences.version=1
filesCopiedToWebInfLib=
googleCloudSqlEnabled=false
localDevMySqlEnabled=true

View File

@ -0,0 +1,5 @@
eclipse.preferences.version=1
jarsExcludedFromWebInfLib=
lastWarOutDir=/home/giancarlo/workspace/tabular-data-expression-widget/target/tabular-data-expression-widget-1.0.0-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false

View File

@ -0,0 +1,3 @@
eclipse.preferences.version=1
entryPointModules=
filesCopiedToWebInfLib=

View File

@ -0,0 +1,6 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8

View File

@ -0,0 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.5

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="tabular-data-expression-widget">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<dependent-module archiveName="tabular-data-widget-common-event-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/tabular-data-widget-common-event/tabular-data-widget-common-event">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="java-output-path" value="/tabular-data-expression-widget/target/tabular-data-expression-widget-1.0.0-SNAPSHOT/WEB-INF/classes"/>
<property name="context-root" value="tabular-data-expression-widget"/>
</wb-module>
</project-modules>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.5"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

View File

@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary

View File

@ -0,0 +1 @@
Window

17
ExpressionWidget.launch Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.DevMode"/>
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="ExpressionWidget.html"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/tabular-data-expression-widget"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gdt.eclipse.maven.mavenClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-remoteUI &quot;${gwt_remote_ui_server_port}:${unique_id}&quot; -startupUrl ExpressionWidget.html -logLevel INFO -codeServerPort 9997 -port 8888 -war /home/giancarlo/workspace/tabular-data-expression-widget/target/tabular-data-expression-widget-1.0.0-SNAPSHOT org.gcube.portlets.user.td.expressionwidget.ExpressionWidget"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="tabular-data-expression-widget"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m -Dgwt.nowarn.legacy.tools"/>
</launchConfiguration>

297
pom.xml Normal file
View File

@ -0,0 +1,297 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>maven-parent</artifactId>
<groupId>org.gcube.tools</groupId>
<version>1.0.0</version>
<relativePath />
</parent>
<!-- POM file generated with GWT webAppCreator -->
<modelVersion>4.0.0</modelVersion>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-expression-widget</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>tabular-data-expression-widget</name>
<description>tabular-data-expression-widget allows to create expression on column of table</description>
<scm>
<url>https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-expression-widget</url>
</scm>
<developers>
<developer>
<name>Giancarlo Panichi</name>
<email>g.panichi@isti.cnr.it</email>
<organization>CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo"</organization>
<roles>
<role>architect</role>
<role>developer</role>
</roles>
</developer>
</developers>
<properties>
<distroDirectory>${project.basedir}/distro</distroDirectory>
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<release.date>2013-10-18</release.date>
<templatesDirectory>templates</templatesDirectory>
<distroDirectory>distro</distroDirectory>
<configDirectory>config</configDirectory>
<!-- Convenience property to set the GWT version -->
<gwtVersion>2.5.1</gwtVersion>
<!-- To make this work on gwt-run you need to set up global env vars. on
MacOSX edit this file /etc/launchd.conf and put "setenv GLOBUS_LOCATION /Users/massi/portal/Portal-Bundle/gCore"
on Linux? -->
<GLOBUS_LOCATION>${env.GLOBUS_LOCATION}</GLOBUS_LOCATION>
<!-- GWT needs at least java 1.5 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<profiles>
<profile>
<id>localRun</id>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.1</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<classifier>sources</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sencha.gxt</groupId>
<artifactId>gxt</artifactId>
<version>3.0.1</version>
</dependency>
<!-- tabular-data-wizard-widget
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-wizard-widget</artifactId>
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
</dependency>
-->
<!-- tabular-data-gwt-service -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-gwt-service</artifactId>
<version>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</version>
</dependency>
<!-- LOGGING -->
<dependency>
<groupId>com.allen-sauer.gwt.log</groupId>
<artifactId>gwt-log</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<!-- <scope>compile</scope> -->
</dependency>
<!-- JUNIT -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- Generate compiled stuff in the folder used for developing mode -->
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
<!-- TODO check if needed -->
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
</dependencies>
</plugin>
<!-- GWT Maven Plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwtVersion}</version>
<executions>
<execution>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
<configuration>
<runTarget>ExpressionWidget.html</runTarget>
<hostedWebapp>${webappDirectory}</hostedWebapp>
<module>org.gcube.portlets.user.td.expressionwidget.ExpressionWidget</module>
</configuration>
</plugin>
<!-- Maven -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-profile</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${configDirectory}</outputDirectory>
<resources>
<resource>
<directory>${templatesDirectory}</directory>
<includes>
<include>profile.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-distro-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${distroDirectory}</outputDirectory>
<resources>
<resource>
<directory>${templatesDirectory}</directory>
<excludes>
<exclude>profile.xml</exclude>
<exclude>descriptor.xml</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>${distroDirectory}</directory>
<includes>
<include>**</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
<fileset>
<directory>${configDirectory}</directory>
<includes>
<include>**</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
<configuration>
<descriptors>
<descriptor>${templatesDirectory}/descriptor.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>servicearchive</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>maven-portal-bom</artifactId>
<version>LATEST</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<packaging>war</packaging>
</project>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='ExpressionWidget'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->
<inherits name='com.google.gwt.junit.JUnit' />
<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.standard.Standard' />
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<inherits name='com.sencha.gxt.ui.GXT' />
<inherits name="com.allen_sauer.gwt.log.gwt-log-TRACE" />
<inherits name='org.gcube.portlets.user.td.gwtservice.TDGWTService' />
<!-- Specify the app entry point class. -->
<entry-point class='org.gcube.portlets.user.td.expressionwidget.client.ExpressionWidgetEntry' />
<!-- Specify the paths for translatable code -->
<source path='client' />
<source path='shared' />
</module>

View File

@ -0,0 +1,190 @@
package org.gcube.portlets.user.td.expressionwidget.client;
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.TextArea;
import com.sencha.gxt.widget.core.client.form.TextField;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ColumnExpressionPanel extends FramedPanel {
protected TRId trId;
protected String columnName=null;
protected ColumnData column;
//protected ComboBox<ColumnData> combo=null;
/**
*
* @param columnTypeCode
* @param dataTypeName
*/
public ColumnExpressionPanel(String columnId, String columnTypeCode, String dataTypeName) {
column=new ColumnData();
column.setColumnId(columnId);
column.setDataTypeName(dataTypeName);
column.setTypeCode(columnTypeCode);
create();
}
/**
*
* @param trId
* @param columnName
*/
public ColumnExpressionPanel(TRId trId, String columnName) {
this.trId=trId;
this.columnName=columnName;
load(trId, columnName);
}
protected void create() {
setBodyBorder(false);
// getHeader().setIcon(Resources.IMAGES.side_list());
setWidth(400);
setHeight(400);
setResize(true);
VerticalLayoutContainer basicLayout = new VerticalLayoutContainer();
basicLayout.setScrollMode(ScrollMode.AUTO);
basicLayout.setAdjustForScroll(true);
TextField nome= new TextField();
basicLayout.add(new FieldLabel(nome, "Nome"), new VerticalLayoutData(1, -1));
TextArea descrizione= new TextArea();
basicLayout.add(new FieldLabel(descrizione, "Descrizione"), new VerticalLayoutData(1, -1));
ConditionWidget conditionWidget =new ConditionWidget(column.getColumnId(), column.getTypeCode(), column.getDataTypeName());
basicLayout.add(conditionWidget);
add(basicLayout);
show();
/*
ContentPanel panel = new ContentPanel();
panel.setHeaderVisible(false);
//panel.setBodyStyle("margin: 0px;");
ColumnDataProperties props = GWT.create(ColumnDataProperties.class);
ListStore<ColumnData> store = new ListStore<ColumnData>(props.id());
Log.trace("Store created");
RpcProxy<ListLoadConfig, ListLoadResult<ColumnData>> proxy = new RpcProxy<ListLoadConfig, ListLoadResult<ColumnData>>() {
public void load(ListLoadConfig loadConfig, final AsyncCallback<ListLoadResult<ColumnData>> callback) {
loadData(loadConfig, callback);
}
};
final ListLoader<ListLoadConfig, ListLoadResult<ColumnData>> loader = new ListLoader<ListLoadConfig, ListLoadResult<ColumnData>>(proxy);
loader.setRemoteSort(false);
loader.addLoadHandler(new LoadResultListStoreBinding<ListLoadConfig, ColumnData, ListLoadResult<ColumnData>>(store));
Log.trace("Loader created");
combo = new ComboBox<ColumnData>(store,
props.label()){
@Override
protected void onAfterFirstAttach() {
super.onAfterFirstAttach();
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute() {
loader.load();
}
});
}
};
Log.trace("Combo created");
addHandlersForEventObservation(combo, props.label());
combo.setEmptyText("Select a column...");
combo.setWidth(150);
combo.setTypeAhead(true);
combo.setTriggerAction(TriggerAction.ALL);
combo.setLoader(loader);
FramedPanel form = new FramedPanel();
form.setHeaderVisible(false);
//form.setWidth(350);
form.setBodyStyle("background: none;");
VerticalLayoutContainer v = new VerticalLayoutContainer();
v.add(new FieldLabel(combo, "Column"), new VerticalLayoutData(1, -1));
form.add(v);
form.addButton(new TextButton("Remove"));
panel.add(form);
basicLayout.add(panel, new VerticalLayoutData(-1, -1, new Margins()));
*/
}
/*
private <T> void addHandlersForEventObservation(ComboBox<T> combo,
final LabelProvider<T> labelProvider) {
combo.addValueChangeHandler(new ValueChangeHandler<T>() {
public void onValueChange(ValueChangeEvent<T> event) {
Info.display(
"Value Changed",
"New value: "
+ (event.getValue() == null ? "nothing"
: labelProvider.getLabel(event
.getValue()) + "!"));
}
});
combo.addSelectionHandler(new SelectionHandler<T>() {
public void onSelection(SelectionEvent<T> event) {
Info.display(
"State Selected",
"You selected "
+ (event.getSelectedItem() == null ? "nothing"
: labelProvider.getLabel(event
.getSelectedItem()) + "!"));
}
});
}
*/
protected void load(TRId trId, String columnName) {
TDGWTServiceAsync.INSTANCE.getColumn(trId,columnName, new AsyncCallback<ColumnData>(){
public void onFailure(Throwable caught) {
Log.error("Error retrieving column: "+caught.getMessage());
}
public void onSuccess(ColumnData result) {
Log.debug("Retrived column: "+result);
column=result;
create();
}
});
}
}

View File

@ -0,0 +1,99 @@
package org.gcube.portlets.user.td.expressionwidget.client;
import org.gcube.data.analysis.tabulardata.expression.Operator;
import org.gcube.portlets.user.td.expressionwidget.client.operation.Operation;
import org.gcube.portlets.user.td.expressionwidget.client.operation.OperationProperties;
import org.gcube.portlets.user.td.expressionwidget.client.operation.OperationsStore;
import com.allen_sauer.gwt.log.client.Log;
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.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
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.widget.core.client.container.HorizontalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
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.container.HorizontalLayoutContainer.HorizontalLayoutData;
import com.sencha.gxt.widget.core.client.form.ComboBox;
import com.sencha.gxt.widget.core.client.info.Info;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ConditionWidget extends SimpleContainer {
protected Operator op;
protected ComboBox<Operation> comboOp=null;
ConditionWidget(String columnPlaceHolderId,String columnTypeCode, String dataTypeName){
VerticalLayoutContainer vert=new VerticalLayoutContainer();
vert.setScrollMode(ScrollMode.AUTO);
vert.setAdjustForScroll(true);
HorizontalLayoutContainer horiz=new HorizontalLayoutContainer();
OperationProperties props = GWT.create(OperationProperties.class);
ListStore<Operation> storeOp = new ListStore<Operation>(props.id());
storeOp.addAll(OperationsStore.getAll(dataTypeName));
Log.trace("Store created");
comboOp = new ComboBox<Operation>(storeOp,
props.label());
Log.trace("ComboOperation created");
addHandlersForEventObservation(comboOp, props.label());
comboOp.setEmptyText("Select a operation...");
comboOp.setWidth(150);
comboOp.setTypeAhead(true);
comboOp.setTriggerAction(TriggerAction.ALL);
horiz.add(comboOp,new HorizontalLayoutData(-1, -1, new Margins(0)));
vert.add(horiz,new VerticalLayoutData(-1, -1, new Margins(0)));
add(vert);
}
private <T> void addHandlersForEventObservation(ComboBox<T> combo,
final LabelProvider<T> labelProvider) {
combo.addValueChangeHandler(new ValueChangeHandler<T>() {
public void onValueChange(ValueChangeEvent<T> event) {
Info.display(
"Value Changed",
"New value: "
+ (event.getValue() == null ? "nothing"
: labelProvider.getLabel(event
.getValue()) + "!"));
}
});
combo.addSelectionHandler(new SelectionHandler<T>() {
public void onSelection(SelectionEvent<T> event) {
Info.display(
"State Selected",
"You selected "
+ (event.getSelectedItem() == null ? "nothing"
: labelProvider.getLabel(event
.getSelectedItem()) + "!"));
}
});
}
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.client;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.sencha.gxt.widget.core.client.Window;
public class ExpressionWidgetEntry implements EntryPoint {
public void onModuleLoad() {
TRId trId=new TRId();
//For example Tabular Resource 1 and table 1
trId.setId("1");
trId.setTableId("1");
ColumnExpressionPanel expressionPanel=new ColumnExpressionPanel("0", "Attribute", "Integer");
RootPanel.get().add(expressionPanel);
/*ChangeLabelColumnDialog changeLabel=new ChangeLabelColumnDialog(trId);
changeLabel.show();
ChangeToAnnotationColumnDialog changeToAnnotation=new ChangeToAnnotationColumnDialog(trId);
changeToAnnotation.show();*/
Log.info("Hello!");
}
}

View File

@ -0,0 +1,73 @@
package org.gcube.portlets.user.td.expressionwidget.client.operation;
import java.io.Serializable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Operation implements Serializable{
private static final long serialVersionUID = 3713817747863556150L;
Integer id;
String name;
OperatorType operatorType;
String label;
public Operation(Integer id,String name, String label, OperatorType operatorType){
this.id=id;
this.name=name;
this.label=label;
this.operatorType=operatorType;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public OperatorType getOperatorType() {
return operatorType;
}
public void setOperatorType(OperatorType operatorType) {
this.operatorType = operatorType;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
@Override
public String toString() {
return "Operation [id=" + id + ", name=" + name + ", operatorType="
+ operatorType + ", label=" + label + "]";
}
}

View File

@ -0,0 +1,21 @@
package org.gcube.portlets.user.td.expressionwidget.client.operation;
import com.google.gwt.editor.client.Editor.Path;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface OperationProperties extends PropertyAccess<Operation> {
@Path("id")
ModelKeyProvider<Operation> id();
LabelProvider<Operation> label();
}

View File

@ -0,0 +1,86 @@
package org.gcube.portlets.user.td.expressionwidget.client.operation;
import java.util.ArrayList;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class OperationsStore {
static ArrayList<Operation> operations;
static ArrayList<Operation> operationsNumeric = new ArrayList<Operation>() {
private static final long serialVersionUID = -6559885743626876431L;
{
add(new Operation(1,"EQUALS","Equals",OperatorType.EQUALS));
add(new Operation(2,"GREATER","Greater",OperatorType.GREATER));
add(new Operation(3,"GREATER_OR_EQUALS","Greater or equals",OperatorType.GREATER_OR_EQUALS));
add(new Operation(4,"LESSER","Lesser",OperatorType.LESSER));
add(new Operation(5,"LESSER_OR_EQUALS","Lesser or equals",OperatorType.LESSER_OR_EQUALS));
add(new Operation(6,"NOT_EQUALS","Not equals",OperatorType.NOT_EQUALS));
add(new Operation(7,"NOT_GREATER","Not greater",OperatorType.NOT_GREATER));
add(new Operation(8,"NOT_LESSER","Not lesser",OperatorType.NOT_LESSER));
add(new Operation(9,"IS_NULL","Is null",OperatorType.IS_NULL));
add(new Operation(10,"IS_NOT_NULL","Is not null",OperatorType.IS_NOT_NULL));
add(new Operation(11,"BETWEEN","Between",OperatorType.BETWEEN));
add(new Operation(12,"IN","In",OperatorType.IN));
}};
static ArrayList<Operation> operationsText = new ArrayList<Operation>() {
private static final long serialVersionUID = -6559885743626876431L;
{
add(new Operation(1,"BEGIN_WITH","Begin with",OperatorType.BEGINS_WITH));
add(new Operation(2,"CONTAINS","Contains",OperatorType.CONTAINS));
add(new Operation(3,"ENDS_WITH","End with",OperatorType.ENDS_WITH));
add(new Operation(4,"MATCH","Match",OperatorType.MATCH_REGEX));
add(new Operation(5,"NOT_BEGIN_WITH","Not begin with",OperatorType.BEGINS_WITH));
add(new Operation(6,"NOT_CONTAINS","Not contains",OperatorType.CONTAINS));
add(new Operation(7,"NOT_ENDS_WITH","Not end with",OperatorType.ENDS_WITH));
add(new Operation(8,"NOT_MATCH","Not match",OperatorType.MATCH_REGEX));
add(new Operation(10,"IS_NULL","Is null",OperatorType.IS_NULL));
add(new Operation(11,"IS_NOT_NULL","Is not null",OperatorType.IS_NOT_NULL));
add(new Operation(12,"BETWEEN","Between",OperatorType.BETWEEN));
add(new Operation(13,"IN","In",OperatorType.IN));
}};
public static ArrayList<Operation> getAll(String dataTypeName){
if(dataTypeName.compareTo("Boolean")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Date")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Integer")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Geometry")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Numeric")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Text")==0){
operations=operationsText;
} else {
operations=operationsText;
}
}
}
}
}
}
return operations;
}
}

View File

@ -0,0 +1,26 @@
package org.gcube.portlets.user.td.expressionwidget.client.resource;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
//import com.google.gwt.resources.client.ClientBundle.Source;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface ExpressionResources extends ClientBundle {
public static final ExpressionResources INSTANCE = GWT.create(ExpressionResources.class);
@Source("add.png")
ImageResource add();
@Source("delete.png")
ImageResource delete();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,36 @@
/**
*
*/
package org.gcube.portlets.user.td.expressionwidget.client.rpc;
import org.gcube.portlets.user.td.expressionwidget.shared.expression.ExpressionServiceException;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
/**
*
* Implements the basic interfaces generate and submit Expression on service.
*
* <p>
* Allows:  
* <ul>
* <li>Generate Expression</li>
* <ul>
* </p>
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
@RemoteServiceRelativePath("ExpressionService")
public interface ExpressionService extends RemoteService {
public Void submitExpression(Expression expression) throws ExpressionServiceException;
}

View File

@ -0,0 +1,25 @@
/**
*
*/
package org.gcube.portlets.user.td.expressionwidget.client.rpc;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface ExpressionServiceAsync {
public static ExpressionServiceAsync INSTANCE = (ExpressionServiceAsync) GWT
.create(ExpressionService.class);
void submitExpression(Expression expression,AsyncCallback<Void> callback);
}

View File

@ -0,0 +1,26 @@
package org.gcube.portlets.user.td.expressionwidget.shared;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Constants {
public final static String VERSION = "1.0.0";
public final static String DEFAULT_USER = "giancarlo.panichi";
public final static String DEFAULT_SCOPE = "/gcube/devsec";
public static final String PARAMETER_ENCODING = "encoding";
public static final String PARAMETER_HASHEADER = "hasHeader";
public static final String PARAMETER_SEPARATOR = "separator";
public static final String PARAMETER_COLUMNS = "columns";
public static final String PARAMETER_URL = "url";
public static final String PARAMETER_REGISTRYBASEURL ="registryBaseUrl";
public static final String PARAMETER_AGENCY ="agency";
public static final String PARAMETER_ID ="id";
public static final String PARAMETER_VERSION ="version";
}

View File

@ -0,0 +1,28 @@
package org.gcube.portlets.user.td.expressionwidget.shared.expression;
public class ExpressionServiceException extends Exception {
private static final long serialVersionUID = -9066034060104406559L;
/**
*
*/
public ExpressionServiceException() {
super();
}
/**
* @param message
*/
public ExpressionServiceException(String message) {
super(message);
}
public ExpressionServiceException(String message,Throwable t) {
super(message,t);
}
}

View File

@ -0,0 +1,12 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model;
import java.io.Serializable;
public class Expression implements Serializable{
private static final long serialVersionUID = 7818512507606450235L;
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model;
public enum OperatorType {
// Arithmetic
ADDITION, SUBTRACTION, MULTIPLICATION, DIVISION, MODULUS,
// COMPARISON
EQUALS, GREATER, LESSER,
GREATER_OR_EQUALS, LESSER_OR_EQUALS,
NOT_EQUALS, NOT_GREATER, NOT_LESSER,
// LOGICAL
ALL, AND, ANY, BETWEEN, EXISTS, IN, LIKE, NOT, OR, IS_NULL, UNIQUE, IS_NOT_NULL,
// STRING
BEGINS_WITH, ENDS_WITH, CONTAINS, MATCH_REGEX,
NO_BEGINS_WITH, NO_ENDS_WITH, NO_CONTAINS, NO_MATCH_REGEX,
// COMPLEX
SELECT_IN
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Equals extends Expression {
private static final long serialVersionUID = 3154667914317692836L;
Expression leftArgument;
Expression rightArgument;
public Equals(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.EQUALS;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class GreaterOrEquals extends Expression {
private static final long serialVersionUID = -5441076239992740424L;
protected Expression leftArgument;
protected Expression rightArgument;
public GreaterOrEquals(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.GREATER_OR_EQUALS;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class GreaterThan extends Expression {
private static final long serialVersionUID = -8878360512708863164L;
protected Expression leftArgument;
protected Expression rightArgument;
public GreaterThan(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.GREATER;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class LessOrEquals extends Expression {
private static final long serialVersionUID = 7693397481316523615L;
Expression leftArgument;
Expression rightArgument;
public LessOrEquals(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.LESSER_OR_EQUALS;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class LessThan extends Expression {
private static final long serialVersionUID = 6420164520127827750L;
Expression leftArgument;
Expression rightArgument;
public LessThan(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.LESSER;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class NotEquals extends Expression {
private static final long serialVersionUID = 7587723477959909679L;
Expression leftArgument;
Expression rightArgument;
public NotEquals(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.NOT_EQUALS;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class NotGreater extends Expression {
private static final long serialVersionUID = 6783019184437499833L;
Expression leftArgument;
Expression rightArgument;
public NotGreater(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.NOT_GREATER;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class NotLess extends Expression {
private static final long serialVersionUID = 4497500830326659077L;
Expression leftArgument;
Expression rightArgument;
public NotLess(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.NOT_LESSER;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class TextBeginsWith extends Expression {
private static final long serialVersionUID = 222662008523199480L;
protected Expression leftArgument;
protected Expression rightArgument;
public TextBeginsWith(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.BEGINS_WITH;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class TextContains extends Expression {
private static final long serialVersionUID = 7951499429397693592L;
protected Expression leftArgument;
protected Expression rightArgument;
public TextContains(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.CONTAINS;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,30 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class TextEndsWith extends Expression {
private static final long serialVersionUID = -5149428840566398839L;
protected Expression leftArgument;
protected Expression rightArgument;
public TextEndsWith(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.ENDS_WITH;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,31 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class TextMatchSQLRegexp extends Expression {
private static final long serialVersionUID = -4097780009381262681L;
protected Expression leftArgument;
protected Expression rightArgument;
public TextMatchSQLRegexp(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.MATCH_REGEX;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,35 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class And extends Expression {
private static final long serialVersionUID = -4462616033767138280L;
protected List<Expression> arguments;
public And(Expression... arguments) {
this.arguments = Arrays.asList(arguments);
}
public And(List<Expression> arguments) {
this.arguments = arguments;
}
public OperatorType getOperator() {
return OperatorType.AND;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,31 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Between extends Expression {
private static final long serialVersionUID = 5367101215792568854L;
protected Expression leftArgument;
protected Expression rightArgument;
public Between(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.BETWEEN;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class IsNotNull extends Expression {
private static final long serialVersionUID = 8930488371061116376L;
protected Expression argument;
public IsNotNull(Expression argument) {
this.argument=argument;
}
public OperatorType getOperator() {
return OperatorType.IS_NOT_NULL;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,28 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class IsNull extends Expression {
private static final long serialVersionUID = -7845762664802353175L;
protected Expression argument;
public IsNull(Expression argument) {
this.argument=argument;
}
public OperatorType getOperator() {
return OperatorType.IS_NULL;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,27 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Not extends Expression {
private static final long serialVersionUID = 9206533042761278382L;
protected Expression argument;
public Not(Expression argument) {
this.argument = argument;
}
public OperatorType getOperator() {
return OperatorType.NOT;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,35 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Or extends Expression {
private static final long serialVersionUID = 1855717717443945397L;
protected List<Expression> arguments;
public Or(Expression... arguments) {
this.arguments = Arrays.asList(arguments);
}
public Or(List<Expression> arguments) {
this.arguments = arguments;
}
public OperatorType getOperator() {
return OperatorType.OR;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,29 @@
package org.gcube.portlets.user.td.expressionwidget.shared.model.logical;
import org.gcube.portlets.user.td.expressionwidget.shared.model.Expression;
import org.gcube.portlets.user.td.expressionwidget.shared.model.OperatorType;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ValueIsIn extends Expression {
private static final long serialVersionUID = 739569588958197726L;
protected Expression leftArgument;
protected Expression rightArgument;
public ValueIsIn(Expression leftArgument, Expression rightArgument) {
this.leftArgument = leftArgument;
this.rightArgument = rightArgument;
}
public OperatorType getOperator() {
return OperatorType.IN;
}
public String getReturnedDataType() {
return "Boolean";
}
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='ExpressionWidget'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->
<inherits name='com.google.gwt.junit.JUnit' />
<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.standard.Standard' />
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<inherits name='com.sencha.gxt.ui.GXT' />
<inherits name="com.allen_sauer.gwt.log.gwt-log-TRACE" />
<inherits name='org.gcube.portlets.user.td.gwtservice.TDGWTService' />
<!-- Specify the app entry point class. -->
<entry-point class='org.gcube.portlets.user.td.expressionwidget.client.ExpressionWidgetEntry' />
<!-- Specify the paths for translatable code -->
<source path='client' />
<source path='shared' />
</module>

View File

@ -0,0 +1,2 @@
sendButton = Send
nameField = Enter your name

View File

@ -0,0 +1,2 @@
sendButton = Envoyer
nameField = Entrez votre nom

View File

@ -0,0 +1,34 @@
/** Add css rules here for your application. */
/** Example rules used by the template application (remove for your app) */
h1 {
font-size: 2em;
font-weight: bold;
color: #777777;
margin: 40px 0px 70px;
text-align: center;
}
.sendButton {
display: block;
font-size: 16pt;
}
/** Most GWT widgets already have a style name defined */
.gwt-DialogBox {
width: 400px;
}
.dialogVPanel {
margin: 5px;
}
.serverResponseLabelError {
color: red;
}
/** Set ids using widget.getElement().setId("idOfElement") */
#closeButton {
margin: 15px 6px 6px;
}

View File

@ -0,0 +1,50 @@
<!doctype html>
<!-- The DOCTYPE declaration above will set the -->
<!-- browser's rendering engine into -->
<!-- "Standards Mode". Replacing this declaration -->
<!-- with a "Quirks Mode" doctype may lead to some -->
<!-- differences in layout. -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- -->
<!-- Consider inlining CSS to reduce the number of requested files -->
<!-- -->
<link type="text/css" rel="stylesheet" href="ExpressionWidget.css">
<!-- -->
<!-- Any title is fine -->
<!-- -->
<title>Web Application Starter Project</title>
<!-- -->
<!-- This script loads your compiled module. -->
<!-- If you add any GWT meta tags, they must -->
<!-- be added before this line. -->
<!-- -->
<script type="text/javascript" language="javascript" src="ExpressionWidget/ExpressionWidget.nocache.js"></script>
</head>
<!-- -->
<!-- The body can have arbitrary html, or -->
<!-- you can leave the body empty if you want -->
<!-- to create a completely dynamic UI. -->
<!-- -->
<body>
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
<!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
<noscript>
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
Your web browser must have JavaScript enabled
in order for this application to display correctly.
</div>
</noscript>
</body>
</html>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- Servlets -->
<servlet>
<servlet-name>TDGWTService</servlet-name>
<servlet-class>org.gcube.portlets.user.td.gwtservice.server.TDGWTServiceImpl</servlet-class>
</servlet>
<servlet>
<servlet-name>jUnitHostImpl</servlet-name>
<servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
</servlet>
<!-- Servlets Mapping -->
<servlet-mapping>
<servlet-name>TDGWTService</servlet-name>
<url-pattern>ExpressionWidget/TDGWTService</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jUnitHostImpl</servlet-name>
<url-pattern>ExpressionWidget/junithost/*</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>ExpressionWidget.html</welcome-file>
</welcome-file-list>
</web-app>

View File

@ -0,0 +1,64 @@
package org.gcube.portlets.user.td.expressionwidget.client;
import com.google.gwt.junit.client.GWTTestCase;
/**
* GWT JUnit <b>integration</b> tests must extend GWTTestCase.
* Using <code>"GwtTest*"</code> naming pattern exclude them from running with
* surefire during the test phase.
*
* If you run the tests using the Maven command line, you will have to
* navigate with your browser to a specific url given by Maven.
* See http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html
* for details.
*/
public class GwtTestExpressionWidget extends GWTTestCase {
/**
* Must refer to a valid module that sources this class.
*/
public String getModuleName() {
return "org.gcube.portlets.user.td.expressionwidget.ExpressionWidgetJUnit";
}
/**
* This test will send a request to the server using the greetServer method in
* GreetingService and verify the response.
*/
public void testGreetingService() {
// Create the service that we will test.
//GreetingServiceAsync greetingService = GWT.create(GreetingService.class);
//ServiceDefTarget target = (ServiceDefTarget) greetingService;
//target.setServiceEntryPoint(GWT.getModuleBaseURL() + "SDMXImportWizardTD/greet");
// Since RPC calls are asynchronous, we will need to wait for a response
// after this test method returns. This line tells the test runner to wait
// up to 10 seconds before timing out.
//delayTestFinish(10000);
// Send a request to the server.
/* greetingService.greetServer("GWT User", new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
// The request resulted in an unexpected error.
fail("Request failure: " + caught.getMessage());
}
public void onSuccess(String result) {
// Verify that the response is correct.
assertTrue(result.startsWith("Hello, GWT User!"));
// Now that we have received a response, we need to tell the test runner
// that the test is complete. You must call finishTest() after an
// asynchronous test finishes successfully, or the test will time out.
finishTest();
}
});*/
}
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to="ExpressionWidgetJUnit">
<!-- Inherit our applications main module. -->
<inherits name='org.gcube.portlets.user.td.gwtservice.TDGWTService' />
<!-- Specify the path to any remote services. -->
<servlet path="/TDGWTService"
class="org.gcube.portlets.user.td.gwtservice.server.TDGWTServiceImpl" />
<!-- Specify the paths for translatable code -->
<source path='client' />
</module>

0
templates/INSTALL Normal file
View File

6
templates/LICENSE Normal file
View File

@ -0,0 +1,6 @@
gCube System - License
------------------------------------------------------------
The gCube/gCore software is licensed as Free Open Source software conveying to the EUPL (http://ec.europa.eu/idabc/eupl).
The software and documentation is provided by its authors/distributors "as is" and no expressed or
implied warranty is given for its use, quality or fitness for a particular case.

1
templates/MAINTAINERS Normal file
View File

@ -0,0 +1 @@
Giancarlo Panichi (giancarlo.panichi@isti.cnr.it), CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo"

40
templates/README Normal file
View File

@ -0,0 +1,40 @@
The gCube System - ${name}
------------------------------------------------------------
This work has been supported by the following European projects: iMarine (FP7-INFRASTRUCTURES-2011-2)
Authors
-------
Giancarlo Panichi (giancarlo.panichi@isti.cnr.it), CNR Pisa,
Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo"
Version and Release Date
------------------------
v. ${version} (${release.date})
Description
-----------
${project.description}
Download information
--------------------
Source code URL: ${scm.url}
Documentation
-------------
${project.description}
Licensing
---------
This software is licensed under the terms you may find in the file named "LICENSE" in this directory.

6
templates/changelog.xml Normal file
View File

@ -0,0 +1,6 @@
<ReleaseNotes>
<Changeset component="${groupId}.${artifactId}.1-0-0"
date="2013-12-18">
<Change>First Release</Change>
</Changeset>
</ReleaseNotes>

39
templates/descriptor.xml Normal file
View File

@ -0,0 +1,39 @@
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>servicearchive</id>
<formats>
<format>tar.gz</format>
</formats>
<baseDirectory>/</baseDirectory>
<fileSets>
<fileSet>
<directory>${distroDirectory}</directory>
<outputDirectory>/</outputDirectory>
<useDefaultExcludes>true</useDefaultExcludes>
<includes>
<include>README</include>
<include>LICENSE</include>
<include>INSTALL</include>
<include>MAINTAINERS</include>
<include>changelog.xml</include>
</includes>
<fileMode>755</fileMode>
</fileSet>
</fileSets>
<files>
<file>
<source>${distroDirectory}/svnpath.txt</source>
<outputDirectory>/${artifactId}</outputDirectory>
</file>
<file>
<source>${configDirectory}/profile.xml</source>
<outputDirectory>/</outputDirectory>
</file>
<file>
<source>target/${build.finalName}.${packaging}</source>
<outputDirectory>/${artifactId}</outputDirectory>
</file>
</files>
</assembly>

29
templates/profile.xml Normal file
View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<Resource>
<ID></ID>
<Type>Service</Type>
<Profile>
<Description>${project.description}</Description>
<Class>PortletsUser</Class>
<Name>${project.name}</Name>
<Version>1.0.0</Version>
<Packages>
<Software>
<Description>${project.description}</Description>
<Name>${project.name}</Name>
<Version>${version}</Version>
<MavenCoordinates>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
</MavenCoordinates>
<Type>library</Type>
<Files>
<File>${project.build.finalName}.${project.packaging}</File>
</Files>
</Software>
</Packages>
</Profile>
</Resource>

1
templates/svnpath.txt Normal file
View File

@ -0,0 +1 @@
${scm.url}