Add Information Panel

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-portlet@82109 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2013-09-27 15:35:58 +00:00
parent f907c19322
commit 65b120a380
9 changed files with 315 additions and 45 deletions

View File

@ -10,7 +10,7 @@
<dependent-module archiveName="csv-import-wizard-gxt3-1.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/csv-import-wizard-gxt3/csv-import-wizard-gxt3">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="csv-import-wizard-workspace-gxt3-1.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/csv-import-wizard-workspace-gxt3/csv-import-wizard-workspace-gxt3">
<dependent-module archiveName="SDMXImportWizardTD-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/SDMXImportWizardTD/SDMXImportWizardTD">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="SDMXExportWizardTD-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/SDMXExportWizardTD/SDMXExportWizardTD">
@ -19,6 +19,9 @@
<dependent-module archiveName="TDOpen-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/tabular-data-open/tabular-data-open">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="tabular-data-information-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/tabular-data-information/tabular-data-information">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
<property name="context-root" value="tabular-data-portlet"/>
</wb-module>

41
pom.xml
View File

@ -89,7 +89,7 @@
<artifactId>aslcore</artifactId>
<version>[3.2.1-SNAPSHOT,4.0.0-SNAPSHOT)</version>
<scope>provided</scope>
</dependency>
<dependency>
@ -117,18 +117,10 @@
</dependency>
<!-- TABULAR DATA WIDGET -->
<!-- <dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-widget</artifactId>
<version>[1.1.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-widget</artifactId>
<version>[1.1.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
</dependency>
-->
<!-- <dependency> <groupId>org.gcube.portlets.user</groupId> <artifactId>tabular-data-widget</artifactId>
<version>[1.1.0-SNAPSHOT,2.0.0-SNAPSHOT)</version> <classifier>sources</classifier>
</dependency> <dependency> <groupId>org.gcube.portlets.user</groupId> <artifactId>tabular-data-widget</artifactId>
<version>[1.1.0-SNAPSHOT,2.0.0-SNAPSHOT)</version> </dependency> -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-widget-td-source</artifactId>
@ -147,7 +139,7 @@
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT]</version>
<classifier>sources</classifier>
</dependency>
<!-- CSV IMPORTER WIDGET -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
@ -167,30 +159,37 @@
<artifactId>SDMXImportWizardTD</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- SDMX EXPORT WIZARD -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>SDMXExportWizardTD</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- TABULAR DATA OPEN -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>TDOpen</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- TABULAR DATA INFORMATION -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-information</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.gcube.data.analysis.tabulardata</groupId>
<artifactId>service-client-mock</artifactId>
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
</dependency>
</dependencies>
<build>

View File

@ -14,18 +14,33 @@ import org.gcube.portlets.user.td.client.event.ExportTableEvent;
import org.gcube.portlets.user.td.client.event.ExportTableType;
import org.gcube.portlets.user.td.client.event.ImportTableEvent;
import org.gcube.portlets.user.td.client.event.ImportTableType;
import org.gcube.portlets.user.td.client.event.OpenFunctionalityEvent;
import org.gcube.portlets.user.td.client.event.OpenFunctionalityType;
import org.gcube.portlets.user.td.client.event.OpenTabularResourceEvent;
import org.gcube.portlets.user.td.client.event.OpenTabularResourceType;
import org.gcube.portlets.user.td.importer.client.TabularDataImporterListener;
import org.gcube.portlets.user.td.information.client.TabularResourceProperties;
import org.gcube.portlets.user.td.open.client.TDOpen;
import org.gcube.portlets.user.tdw.client.TabularData;
import org.gcube.portlets.user.tdw.shared.model.TableId;
import com.allen_sauer.gwt.log.client.Log;
import com.extjs.gxt.ui.client.event.ResizeEvent;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.event.shared.SimpleEventBus;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer.BorderLayoutData;
import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent;
import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent.BeforeCloseHandler;
import com.sencha.gxt.widget.core.client.info.Info;
/**
* @author "Federico De Faveri defaveri@isti.cnr.it"
@ -37,7 +52,15 @@ public class TabularDataController {
protected SimpleEventBus eventBus;
protected TabularData tabularData;
protected BorderLayoutContainer centerContainer;
protected ContentPanel functionalityPanel;
protected TabPanel functionalityTab;
protected int indexFunctionalityTab = 0;
protected boolean functionalityOpen;
protected Label propertiesLabel;
protected BorderLayoutData eastData;
/**
* Table Open
@ -72,6 +95,44 @@ public class TabularDataController {
}
public BorderLayoutContainer getCenterContainer() {
return centerContainer;
}
public void setCenterContainer(BorderLayoutContainer centerContainer) {
this.centerContainer = centerContainer;
}
public ContentPanel getFunctionalityPanel() {
return functionalityPanel;
}
public void setFunctionalityPanel(ContentPanel functionalityPanel) {
this.functionalityPanel = functionalityPanel;
}
public TabPanel getFunctionalityTab() {
return functionalityTab;
}
public void setFunctionalityTab(TabPanel functionalityTab) {
this.functionalityTab = functionalityTab;
}
public BorderLayoutData getEastData() {
return eastData;
}
public void setEastData(BorderLayoutData eastData) {
this.eastData = eastData;
}
protected void bindToEvents() {
eventBus.addHandler(ImportTableEvent.TYPE,
new ImportTableEvent.ImportTableHandler() {
@ -105,6 +166,15 @@ public class TabularDataController {
doCloseTabularResource(event.getCloseType());
}
});
eventBus.addHandler(OpenFunctionalityEvent.TYPE,
new OpenFunctionalityEvent.OpenFunctionalityHandler() {
@Override
public void onOpenFunctionality(OpenFunctionalityEvent event) {
doOpenFunctionality(event.getOpenFunctionalityType());
}
});
}
@ -186,6 +256,74 @@ public class TabularDataController {
}
}
public void doOpenFunctionality(OpenFunctionalityType openType) {
Log.trace("doOpenFunctionality openType: " + openType);
Info.display("Open Functionality", "open: " + openType);
try {
switch (openType) {
case PROPERTIES:
openFunctionalityProperties();
break;
default:
break;
}
} catch (Exception e) {
Log.error("doOpenFunctionality Error : " + e.getLocalizedMessage());
e.printStackTrace();
}
}
protected void openFunctionalityProperties(){
if(propertiesLabel==null){
propertiesLabel = new Label("Tabular Resources Properties");
propertiesLabel.addStyleName("pad-text");
TabItemConfig propertiesItemConf=new TabItemConfig("Properties", true);
org.gcube.portlets.user.td.information.shared.TRId trId=new org.gcube.portlets.user.td.information.shared.TRId("0","1");
TabularResourceProperties trProperties=new TabularResourceProperties("TRProperties",eventBus,trId);
trProperties.setHeaderVisible(false);
functionalityTab.add(trProperties, propertiesItemConf);
functionalityTab.addBeforeCloseHandler(new BeforeCloseHandler<Widget>(){
@Override
public void onBeforeClose(BeforeCloseEvent<Widget> event) {
if(functionalityTab.getWidgetCount()==1){
functionalityPanel.disable();
functionalityPanel.collapse();
functionalityOpen=false;
propertiesLabel=null;
}
}
}
);
Label taskLabel = new Label("Task Properties");
taskLabel.addStyleName("pad-text");
functionalityTab.add(taskLabel, new TabItemConfig("Task", true));
//Last is functionalityTab.getWidgetCount() - 1)
functionalityTab.setActiveWidget(functionalityTab
.getWidget(0));
centerContainer.onResize();
}
if(functionalityOpen){
functionalityPanel.collapse();
functionalityOpen=false;
} else {
functionalityPanel.enable();
functionalityPanel.expand();
functionalityOpen=true;
}
centerContainer.onResize();
};
protected void openSDMXImportWizard() {
GWT.runAsync(new RunAsyncCallback() {
@ -330,7 +468,8 @@ public class TabularDataController {
tableOpening=new TableId(Constants.TD_DATASOURCE_FACTORY_ID,trId.getTableId());
tabularData.openTable(tableOpening);
tableOpen=true;
}

View File

@ -4,31 +4,29 @@ package org.gcube.portlets.user.td.client;
import org.gcube.portlets.user.td.client.ribbon.TabularDataRibbon;
import org.gcube.portlets.user.td.client.rpc.TabularDataService;
import org.gcube.portlets.user.td.client.rpc.TabularDataServiceAsync;
import org.gcube.portlets.user.tdw.client.TabularData;
import org.gcube.portlets.user.tdw.client.TabularDataGridPanel;
import org.gcube.portlets.user.tdw.client.event.FailureEvent;
import org.gcube.portlets.user.tdw.client.event.FailureEventHandler;
import org.gcube.portlets.user.tdw.shared.model.DataRow;
import org.gcube.portlets.user.tdw.shared.model.TableId;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.user.client.ui.ResizeLayoutPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.Dialog;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.Portlet;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.button.ToolButton;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer.BorderLayoutData;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
import com.sencha.gxt.widget.core.client.container.Viewport;
import com.sencha.gxt.widget.core.client.grid.Grid;
import com.sencha.gxt.widget.core.client.info.Info;
/**
@ -57,6 +55,11 @@ public class TabularDataPortlet implements EntryPoint {
//Private TabularData
private static TabularData tabularData;
private static BorderLayoutContainer centerContainer;
private static ContentPanel functionalityPanel;
private static TabPanel functionalityTab;
private static BorderLayoutData eastData;
/**
* {@inheritDoc}
*/
@ -114,16 +117,53 @@ public class TabularDataPortlet implements EntryPoint {
mainPanelLayout.setNorthWidget(toolBarPanel, toolBarData);
//Grid
//Set Center Container
centerContainer = new BorderLayoutContainer();
centerContainer.setResize(true);
centerContainer.setBorders(false);
//Grid Panel
final TabularDataGridPanel gridPanel = tabularData.getGridPanel();
MarginData gridData = new MarginData();
gridPanel.setHeaderVisible(false);
MarginData gridData = new MarginData();
centerContainer.setCenterWidget(gridPanel,gridData);
//Functionality Panel
functionalityPanel= new ContentPanel();
functionalityPanel.setHeaderVisible(false);
functionalityPanel.setResize(true);
functionalityTab=new TabPanel();
//functionalityTab.setPixelSize(600, 250);
functionalityTab.setAnimScroll(true);
functionalityTab.setTabScroll(true);
functionalityTab.setCloseContextMenu(true);
/*TableId tableopening=new TableId(Constants.TD_DATASOURCE_FACTORY_ID,"1");
tabularData.openTable(tableopening);
gridPanel.setHeaderVisible(false);*/
eastData = new BorderLayoutData(200);
eastData.setCollapsible(true);
eastData.setSplit(true);
eastData.setFloatable(false);
eastData.setCollapseMini(true);
eastData.setMargins(new Margins(0, 5, 0, 5));
eastData.setCollapseHidden(true);
//eastData.setCollapsed(true);
functionalityPanel.add(functionalityTab);
//functionalityPanel.setVisible(false);
centerContainer.setEastWidget(functionalityPanel,eastData);
functionalityPanel.collapse();
functionalityPanel.disable();
controller.setFunctionalityTab(functionalityTab);
controller.setFunctionalityPanel(functionalityPanel);
mainPanelLayout.setCenterWidget(gridPanel, gridData);
//Set Center Container
mainPanelLayout.setCenterWidget(centerContainer, gridData);
controller.setCenterContainer(centerContainer);
//Main
SimpleContainer mainPanel = new SimpleContainer();
@ -148,6 +188,13 @@ public class TabularDataPortlet implements EntryPoint {
root.add(viewport);
}
}
private void configPanel(final Portlet panel) {
panel.setCollapsible(true);
panel.setAnimCollapse(false);
//panel.getHeader().addTool(new ToolButton(ToolButton.GEAR));
panel.getHeader().addTool(new ToolButton(ToolButton.CLOSE));
}
}

View File

@ -0,0 +1,42 @@
package org.gcube.portlets.user.td.client.event;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.HasHandlers;
public class OpenFunctionalityEvent extends GwtEvent<OpenFunctionalityEvent.OpenFunctionalityHandler> {
public static Type<OpenFunctionalityHandler> TYPE = new Type<OpenFunctionalityHandler>();
private OpenFunctionalityType openFunctionalityType;
public interface OpenFunctionalityHandler extends EventHandler {
void onOpenFunctionality(OpenFunctionalityEvent event);
}
public OpenFunctionalityEvent(OpenFunctionalityType openFunctionalityType) {
this.openFunctionalityType = openFunctionalityType;
}
public OpenFunctionalityType getOpenFunctionalityType() {
return openFunctionalityType;
}
@Override
protected void dispatch(OpenFunctionalityHandler handler) {
handler.onOpenFunctionality(this);
}
@Override
public Type<OpenFunctionalityHandler> getAssociatedType() {
return TYPE;
}
public static Type<OpenFunctionalityHandler> getType() {
return TYPE;
}
public static void fire(HasHandlers source, OpenFunctionalityType openFunctionalityType) {
source.fireEvent(new OpenFunctionalityEvent(openFunctionalityType));
}
}

View File

@ -0,0 +1,12 @@
/**
*
*/
package org.gcube.portlets.user.td.client.event;
/**
* @author "Federico De Faveri defaveri@isti.cnr.it"
*
*/
public enum OpenFunctionalityType {
PROPERTIES;
}

View File

@ -9,6 +9,8 @@ import org.gcube.portlets.user.td.client.event.ExportTableEvent;
import org.gcube.portlets.user.td.client.event.ExportTableType;
import org.gcube.portlets.user.td.client.event.ImportTableEvent;
import org.gcube.portlets.user.td.client.event.ImportTableType;
import org.gcube.portlets.user.td.client.event.OpenFunctionalityEvent;
import org.gcube.portlets.user.td.client.event.OpenFunctionalityType;
import org.gcube.portlets.user.td.client.event.OpenTabularResourceEvent;
import org.gcube.portlets.user.td.client.event.OpenTabularResourceType;
import org.gcube.portlets.user.td.client.resource.TabularDataResources;
@ -132,7 +134,7 @@ public class FileToolBar {
@Override
public void onSelect(SelectEvent event) {
//eventBus.fireEvent(new ImportTableEvent(ImportTableType.JSON));
eventBus.fireEvent(new OpenFunctionalityEvent(OpenFunctionalityType.PROPERTIES));
}
});

View File

@ -8,11 +8,15 @@
<inherits name="com.allen_sauer.gwt.log.gwt-log-TRACE" />
<!-- <inherits name='org.gcube.portlets.user.workspace.WorkspaceTree' /> -->
<inherits name="org.gcube.portlets.user.tdw.TabularDataWidget" />
<inherits name='org.gcube.portlets.user.sdmximportwizardtd.SDMXImportWizardTD' />
<inherits name='org.gcube.portlets.user.sdmxexportwizardtd.SDMXExportWizardTD' />
<inherits name='org.gcube.portlets.user.td.information.Information' />
<inherits name='org.gcube.portlets.user.td.open.TDOpen' />
<inherits name='org.gcube.portlets.user.td.ciw.csvimporterwidget' />
<inherits name='org.gcube.portlets.user.workspace.lighttree.WorkspacePortletLightTree' />
<inherits name='org.gcube.portlets.user.sdmximportwizardtd.SDMXImportWizardTD' />
<inherits name='org.gcube.portlets.user.sdmxexportwizardtd.SDMXExportWizardTD' />
<inherits name='org.gcube.portlets.user.workspace.lighttree.WorkspacePortletLightTree' />
<!-- <inherits name='org.gcube.data.analysis.tabulardata.ServiceData'/> -->
<!-- Specify the app entry point class. -->

View File

@ -23,6 +23,12 @@
<servlet-class>org.gcube.portlets.user.tdw.server.TabularDataServlet</servlet-class>
</servlet>
<!-- TD Information -->
<servlet>
<servlet-name>TDInformationService</servlet-name>
<servlet-class>org.gcube.portlets.user.td.information.server.TDInformationServiceImpl</servlet-class>
</servlet>
<!-- TDOpen -->
<servlet>
<servlet-name>TDOpenService</servlet-name>
@ -34,6 +40,12 @@
<servlet-name>SDMXImportWizardService</servlet-name>
<servlet-class>org.gcube.portlets.user.sdmximportwizardtd.server.SDMXImportWizardServiceImpl</servlet-class>
</servlet>
<!-- SDMX EXPORT WIZARD -->
<servlet>
<servlet-name>SDMXExportWizardService</servlet-name>
<servlet-class>org.gcube.portlets.user.sdmxexportwizardtd.server.SDMXExportWizardServiceImpl</servlet-class>
</servlet>
<!-- CSV IMPORT WIZARD -->
<servlet>
@ -90,7 +102,7 @@
<servlet-class>org.gcube.portlets.user.workspace.server.UploadServlet</servlet-class>
</servlet>
<!-- Servlets -->
<!-- Servlets Mapping-->
<servlet-mapping>
<servlet-name>tdservlet</servlet-name>
<url-pattern>/tabulardataportlet/tds</url-pattern>
@ -108,6 +120,13 @@
<url-pattern>/tabulardataportlet/tdwdata</url-pattern>
</servlet-mapping>
<!-- TD Information -->
<servlet-mapping>
<servlet-name>TDInformationService</servlet-name>
<url-pattern>/tabulardataportlet/TDInformationService</url-pattern>
</servlet-mapping>
<!-- TDOpen -->
<servlet-mapping>
<servlet-name>TDOpenService</servlet-name>
@ -120,10 +139,13 @@
<servlet-name>SDMXImportWizardService</servlet-name>
<url-pattern>/tabulardataportlet/SDMXImportWizardService</url-pattern>
</servlet-mapping>
<!-- <servlet-mapping> -->
<!-- <servlet-name>SDMXImportWizardServlet</servlet-name> -->
<!-- <url-pattern>/tabulardataportlet/SDMXImportWizardService</url-pattern> -->
<!-- </servlet-mapping> -->
<!-- SDMX EXPORT WIZARD -->
<servlet-mapping>
<servlet-name>SDMXExportWizardService</servlet-name>
<url-pattern>/tabulardataportlet/SDMXExportWizardService</url-pattern>
</servlet-mapping>
<!-- CSV IMPORT WIZARD -->
<servlet-mapping>