edit of Reference Reports in progress

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@86113 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2013-11-25 18:11:03 +00:00
parent fba76628e0
commit 17e5838657
7 changed files with 141 additions and 63 deletions

View File

@ -11,6 +11,7 @@ import org.gcube.portlets.user.reportgenerator.client.dialog.ImporterDialog;
import org.gcube.portlets.user.reportgenerator.client.dialog.PagePropertiesDialog;
import org.gcube.portlets.user.reportgenerator.client.model.ExportManifestationType;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import org.gcube.portlets.widgets.lighttree.client.ItemType;
import org.gcube.portlets.widgets.lighttree.client.event.PopupEvent;
import org.gcube.portlets.widgets.lighttree.client.event.PopupHandler;
@ -51,6 +52,7 @@ public class Headerbar extends Composite{
private static final String EXPORT_FIMES = "Export to FiMES XML";
private static final String EXPORT_XML = "Export to XML";
private static final String IMPORT_VME = "Import VME Report";
private static final String IMPORT_VME_REF = "Import VME Reference Report";
// private static final String EXPORT_ENCRYPTED_REPORT = "Save an Encrypted Version to Desktop";
private static final String VIEW_USER_COMMENTS = "View user comments";
@ -99,6 +101,8 @@ public class Headerbar extends Composite{
private MenuItem discardSection;
private MenuItem importVME;
private MenuItem importVMERef;
@ -351,11 +355,26 @@ public class Headerbar extends Composite{
presenter.showVMEImportDialog();
}
};
importVME = new MenuItem(IMPORT_VME, true, importVMEReport);
MenuBar importVMERef = new MenuBar(true);
MenuItem importVMERefItem = new MenuItem(IMPORT_VME_REF, importVMERef);
//add the submenu items for report refs
for (final VMETypeIdentifier type : VMETypeIdentifier.values()) {
if (type != VMETypeIdentifier.Vme) {
MenuItem item = new MenuItem(type.getId(), true, new Command() {
public void execute() {
presenter.showVMERefAssociateDialog(type);
}
});
importVMERef.addItem(item);
}
}
importMenu.addItem(importVME);
importMenu.addItem(importVMERefItem);
return toReturn;
}

View File

@ -1,6 +1,5 @@
package org.gcube.portlets.user.reportgenerator.client.Presenter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -11,7 +10,6 @@ import org.gcube.portlets.d4sreporting.common.shared.Metadata;
import org.gcube.portlets.d4sreporting.common.shared.Model;
import org.gcube.portlets.d4sreporting.common.shared.ReportReferences;
import org.gcube.portlets.user.reportgenerator.client.Headerbar;
import org.gcube.portlets.user.reportgenerator.client.ReportConstants;
import org.gcube.portlets.user.reportgenerator.client.ReportGenerator;
import org.gcube.portlets.user.reportgenerator.client.ReportService;
import org.gcube.portlets.user.reportgenerator.client.ReportServiceAsync;
@ -65,8 +63,6 @@ import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEvent;
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEventHandler;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import org.gcube.portlets.widgets.userselection.client.UserSelectionDialog;
import org.gcube.portlets.widgets.userselection.client.events.UsersFetchedEvent;
import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.GWT;
@ -1252,7 +1248,7 @@ public class Presenter {
*
*/
public void showVMEImportDialog() {
ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus());
ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), VMETypeIdentifier.Vme);
dlg.show();
}
@ -1260,23 +1256,8 @@ public class Presenter {
*
*/
public void showVMERefAssociateDialog(VMETypeIdentifier refType) {
itemSelectionDialog = new UserSelectionDialog("Associate " + refType.toString() + ": Please select one ", eventBus);
itemSelectionDialog.center();
itemSelectionDialog.show();
reportService.listVMEReportRefByType(refType, new AsyncCallback<ArrayList<ItemSelectableBean>>() {
@Override
public void onFailure(Throwable caught) {
//handled by the Widget
}
@Override
public void onSuccess(ArrayList<ItemSelectableBean> result) {
for (ItemSelectableBean item : result) {
item.setIconURL(ReportConstants.REPORT_REF_ICON);
}
eventBus.fireEvent(new UsersFetchedEvent(result));
}
});
ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), refType);
dlg.show();
}
private void importVMEReport(String reportId) {
@ -1298,7 +1279,9 @@ public class Presenter {
}
private void associateVMRReportRef (VMETypeIdentifier type, String reportId) throws Exception {
private void associateVMRReportRef(VMETypeIdentifier type, String reportId) throws Exception {
GWT.log("Type="+type);
GWT.log("Id"+reportId);
reportService.importVMEReportRef(reportId, type, new AsyncCallback<Model>() {
@Override

View File

@ -5,13 +5,12 @@ import java.util.ArrayList;
import org.gcube.portlets.d4sreporting.common.shared.Model;
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
import org.gcube.portlets.d4sreporting.common.shared.Table;
import org.gcube.portlets.widgets.exporter.shared.SaveReportFileException;
import org.gcube.portlets.widgets.exporter.shared.SaveReportFileExistException;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean;
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import org.gcube.portlets.widgets.exporter.shared.SaveReportFileException;
import org.gcube.portlets.widgets.exporter.shared.SaveReportFileExistException;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@ -24,7 +23,7 @@ public interface ReportService extends RemoteService{
ArrayList<VMEReportBean> listVMEReports();
ArrayList<ItemSelectableBean> listVMEReportRefByType(VMETypeIdentifier refType);
ArrayList<VMEReportBean> listVMEReportRefByType(VMETypeIdentifier refType);
Model importVMEReport(String id);

View File

@ -5,11 +5,10 @@ import java.util.ArrayList;
import org.gcube.portlets.d4sreporting.common.shared.Model;
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
import org.gcube.portlets.d4sreporting.common.shared.Table;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean;
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import com.google.gwt.user.client.rpc.AsyncCallback;
/**
@ -80,7 +79,8 @@ public interface ReportServiceAsync {
void importVMEReport(String id, AsyncCallback<Model> callback);
void listVMEReportRefByType(VMETypeIdentifier refType, AsyncCallback<ArrayList<ItemSelectableBean>> callback);
void listVMEReportRefByType(VMETypeIdentifier refType,
AsyncCallback<ArrayList<VMEReportBean>> callback);
void importVMEReportRef(String id, VMETypeIdentifier refType, AsyncCallback<Model> callback);
}

View File

@ -12,6 +12,7 @@ import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.GroupingStore;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.store.Store;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Html;
@ -39,14 +40,15 @@ public class ImportVMEReportDialog extends Window {
private HandlerManager eventBus;
private HorizontalPanel hp = new HorizontalPanel();
private StoreFilterField<VMEReportBean> filter;
private VMETypeIdentifier type;
/**
*
* @param eventBus the bus to fire events into
*/
public ImportVMEReportDialog(final HandlerManager eventBus) {
public ImportVMEReportDialog(final HandlerManager eventBus, VMETypeIdentifier type) {
this.eventBus = eventBus;
this.type = type;
mainPanel.setHeaderVisible(false);
setWidth(WIDTH);
setHeight(HEIGHT);
@ -76,27 +78,102 @@ public class ImportVMEReportDialog extends Window {
add(hp);
add(mainPanel);
showLoading();
reportService.listVMEReports(new AsyncCallback<ArrayList<VMEReportBean>>() {
@Override
public void onFailure(Throwable caught) {
mainPanel.unmask();
}
@Override
public void onSuccess(ArrayList<VMEReportBean> reports) {
mainPanel.unmask();
for (VMEReportBean vmeReportBean : reports) {
GWT.log(vmeReportBean.getName());
if (type == VMETypeIdentifier.Vme)
reportService.listVMEReports(new AsyncCallback<ArrayList<VMEReportBean>>() {
@Override
public void onFailure(Throwable caught) {
mainPanel.unmask();
}
showCollections(reports);
}
});
@Override
public void onSuccess(ArrayList<VMEReportBean> reports) {
mainPanel.unmask();
showAvailableReports(reports);
}
});
else {
reportService.listVMEReportRefByType(type, new AsyncCallback<ArrayList<VMEReportBean>>() {
@Override
public void onFailure(Throwable caught) {
mainPanel.unmask();
}
@Override
public void onSuccess(ArrayList<VMEReportBean> refReports) {
mainPanel.unmask();
showAvailableReferenceReports(refReports);
}
});
}
}
/**
*
* @param reports
*/
public void showAvailableReferenceReports(List<VMEReportBean> reports) {
ColumnModel cm = null;
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
ColumnConfig column = new ColumnConfig();
column.setId("id");
column.setHeader("ID");
column.setHidden(false);
column.setWidth(50);
column.setRowHeader(true);
configs.add(column);
column = new ColumnConfig();
column.setId("name");
column.setHeader("Name");
column.setWidth(150);
configs.add(column);
cm = new ColumnModel(configs);
/**
* load the grid data
*/
ListStore<VMEReportBean> store = new ListStore <VMEReportBean>();
store.add(reports);
filter.bind(store);
final Grid<VMEReportBean> grid = new Grid<VMEReportBean>(store, cm);
grid.getElement().getStyle().setBorderWidth(0, Unit.PX);
grid.setAutoExpandColumn("name");
grid.setBorders(false);
grid.setStripeRows(true);
ContentPanel gridPanel = new ContentPanel(new FitLayout());
gridPanel.setHeaderVisible(false);
gridPanel.add(grid);
gridPanel.addButton(new Button("Cancel", new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
hide();
}
}));
gridPanel.addButton(new Button("Edit Selected", new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
hide();
eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), type));
}
}));
mainPanel.add(gridPanel);
mainPanel.setLayout(new FitLayout());
mainPanel.layout();
}
/**
* view for collections step
* @param vDesc
*/
public void showCollections(List<VMEReportBean> reports) {
public void showAvailableReports(List<VMEReportBean> reports) {
ColumnModel cm = null;
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
@ -143,7 +220,7 @@ public class ImportVMEReportDialog extends Window {
grid.getElement().getStyle().setBorderWidth(0, Unit.PX);
grid.setAutoExpandColumn("name");
grid.setBorders(true);
grid.setBorders(false);
grid.setStripeRows(true);
@ -168,17 +245,13 @@ public class ImportVMEReportDialog extends Window {
@Override
public void componentSelected(ButtonEvent ce) {
hide();
fireEvent(grid.getSelectionModel().getSelectedItem());
eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), VMETypeIdentifier.Vme));
}
}));
mainPanel.add(gridPanel);
mainPanel.setLayout(new FitLayout());
mainPanel.layout();
}
private void fireEvent(VMEReportBean toFire) {
eventBus.fireEvent(new SelectedReportEvent(toFire.getId(), VMETypeIdentifier.Vme));
}
}
/**
*
*/

View File

@ -1492,19 +1492,20 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
}
@Override
public ArrayList<ItemSelectableBean> listVMEReportRefByType(VMETypeIdentifier refType) {
public ArrayList<VMEReportBean> listVMEReportRefByType(VMETypeIdentifier refType) {
if (refType == VMETypeIdentifier.Vme)
throw new IllegalArgumentException("VME Type is not a reference");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
ArrayList<ItemSelectableBean> toReturn = new ArrayList<ItemSelectableBean>();
ArrayList<VMEReportBean> toReturn = new ArrayList<VMEReportBean>();
ReportType type = new ReportType();
type.setTypeIdentifier(refType.toString());
for (ReportEntry re : getFakeReports(type)) {
toReturn.add(new ItemSelectableBean(""+re.getId(), re.getNameValueList().get(0).getValue(), "", refType.toString()));
String name = re.getNameValueList().get(0).getValue();
toReturn.add(new VMEReportBean(""+re.getId(), "", name, -1));
}
return toReturn;
}
@ -1545,6 +1546,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
List<NameValue> namesValues = new ArrayList<NameValue>();
NameValue name = new NameValue();
name.setName(type.getTypeIdentifier() + "-" + i);
name.setValue(type.getTypeIdentifier() + "-" + generateRandomWord());
namesValues.add(name);
re.setNameValueList(namesValues);
toReturn.add(re);
@ -1594,7 +1596,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
public Model importVMEReportRef(String id, VMETypeIdentifier refType) {
String reportName = "Sample VME Report imported with id: " + id;
String reportName = "Sample Reference Report: " + id;
ReportsModeler rm = new ReportsModeler(
UUID.randomUUID().toString(),
reportName,
@ -1620,7 +1622,9 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
dBTableRows.add(new DBTableRow("primaryKey", md));
rm.add(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows));
try {
return rm.getReportInstance();
Model toReturn = rm.getReportInstance();
ReportsReader.readReportStructure(toReturn);
return toReturn;
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -1,7 +1,7 @@
package org.gcube.portlets.user.reportgenerator.shared;
public enum VMETypeIdentifier {
Vme("GeneralMeasure"),
Vme("Vme"),
GeneralMeasure("GeneralMeasure"),
InformationSource("InformationSource"),
FisheryAreasHistory("FisheryAreasHistory"),