Minor Updated

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-column-widget@92360 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-02-26 18:03:05 +00:00
parent 9c52d1c901
commit fee49c8272
3 changed files with 148 additions and 46 deletions

View File

@ -2,6 +2,7 @@ package org.gcube.portlets.user.td.columnwidget.client;
import java.util.ArrayList;
import org.gcube.portlets.user.td.columnwidget.client.dimension.CodelistSelectionListener;
import org.gcube.portlets.user.td.columnwidget.client.dimension.DialogCodelistSelection;
import org.gcube.portlets.user.td.columnwidget.client.progress.ChangeColumnTypeProgressDialog;
import org.gcube.portlets.user.td.columnwidget.client.properties.ColumnDataProperties;
@ -24,8 +25,6 @@ import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.event.logical.shared.BeforeSelectionEvent;
import com.google.gwt.event.logical.shared.BeforeSelectionHandler;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
@ -46,13 +45,11 @@ import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
import com.sencha.gxt.widget.core.client.event.BeforeShowContextMenuEvent;
import com.sencha.gxt.widget.core.client.event.TriggerClickEvent;
import com.sencha.gxt.widget.core.client.event.BeforeShowContextMenuEvent.BeforeShowContextMenuHandler;
import com.sencha.gxt.widget.core.client.event.HideEvent;
import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
import com.sencha.gxt.widget.core.client.event.TriggerClickEvent;
import com.sencha.gxt.widget.core.client.event.TriggerClickEvent.TriggerClickHandler;
import com.sencha.gxt.widget.core.client.form.ComboBox;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
@ -68,7 +65,7 @@ import com.sencha.gxt.widget.core.client.info.Info;
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ChangeColumnTypePanel extends FramedPanel {
public class ChangeColumnTypePanel extends FramedPanel implements CodelistSelectionListener {
protected String WIDTH = "640px";
protected String HEIGHT = "520px";
protected EventBus eventBus;
@ -613,7 +610,26 @@ public class ChangeColumnTypePanel extends FramedPanel {
protected void callDialogCodelistSelection() {
DialogCodelistSelection dialogCodelistSelection = new DialogCodelistSelection(
eventBus);
dialogCodelistSelection.addListener(this);
dialogCodelistSelection.show();
}
@Override
public void selected(TabResource tabResource) {
Log.debug("Selected Codelist: "+tabResource);
}
@Override
public void aborted() {
Log.debug("Select Codelist Aborted");
}
@Override
public void failed(String reason, String detail) {
Log.error("Select Codelist Failed[reason: "+reason+" , detail:"+detail+"]");
}
}

View File

@ -0,0 +1,32 @@
package org.gcube.portlets.user.td.columnwidget.client.dimension;
import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface CodelistSelectionListener {
/**
* Called when selected codelist without errors
*/
public void selected(TabResource tabResource);
/**
* Called when the select operation is aborted by the user.
*/
public void aborted();
/**
* Called when the something in the wizard is failed.
*
* @param reason
* @param detail
*/
public void failed(String reason, String detail);
}

View File

@ -23,6 +23,7 @@ import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.core.client.IdentityValueProvider;
import com.sencha.gxt.core.client.Style.SelectionMode;
import com.sencha.gxt.core.client.resources.ThemeStyles;
@ -54,14 +55,14 @@ import com.sencha.gxt.widget.core.client.grid.LiveGridView;
import com.sencha.gxt.widget.core.client.grid.LiveToolItem;
import com.sencha.gxt.widget.core.client.toolbar.LabelToolItem;
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
import com.google.web.bindery.event.shared.EventBus;
public class DialogCodelistSelection extends Window {
protected static final int WIDTH = 550;
protected static final int HEIGHT = 520;
protected static final int CACHE_SIZE = 200;
protected ArrayList<CodelistSelectionListener> listeners;
private static final TabResourcesProperties properties = GWT
.create(TabResourcesProperties.class);
@ -71,17 +72,18 @@ public class DialogCodelistSelection extends Window {
properties.agency(), 50, "Agency");
protected static final ColumnConfig<TabResource, String> dateColumn = new ColumnConfig<TabResource, String>(
properties.date(), 50, "Date");
protected EventBus eventBus;
protected Grid<TabResource> grid;
protected ExtendedLiveGridView liveGridView;
protected PagingLoader<PagingLoadConfig, PagingLoadResult<TabResource>> loader;
protected String filter;
protected ResourceBundle res;
private TextButton select;
public DialogCodelistSelection(EventBus eventBus) {
this.eventBus=eventBus;
this.eventBus = eventBus;
Log.info("Dialog CodelistSelection");
setWidth(WIDTH);
setHeight(HEIGHT);
@ -89,12 +91,13 @@ public class DialogCodelistSelection extends Window {
setBodyBorder(false);
setResizable(true);
setHeadingText("Select Codelist");
listeners = new ArrayList<CodelistSelectionListener>();
initLoad();
}
protected void create(){
protected void create() {
FramedPanel panel = new FramedPanel();
panel.setHeaderVisible(false);
panel.setBodyBorder(false);
@ -130,8 +133,8 @@ public class DialogCodelistSelection extends Window {
public void onKeyUp(KeyUpEvent event) {
Log.trace("searchTerm: " + searchField.getCurrentValue());
filter=searchField.getCurrentValue();
if(filter!=null&& !filter.isEmpty()){
filter = searchField.getCurrentValue();
if (filter != null && !filter.isEmpty()) {
loader.load(0, liveGridView.getCacheSize());
}
}
@ -142,7 +145,7 @@ public class DialogCodelistSelection extends Window {
public void load(PagingLoadConfig loadConfig,
final AsyncCallback<PagingLoadResult<TabResource>> callback) {
loadData(loadConfig, callback);
}
};
loader = new PagingLoader<PagingLoadConfig, PagingLoadResult<TabResource>>(
@ -196,7 +199,19 @@ public class DialogCodelistSelection extends Window {
v.add(baseToolBar, new VerticalLayoutData(1, 25));
panel.add(v);
panel.addButton(new TextButton("Select"));
select = new TextButton("Select");
select.disable();
select.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
fireCompleted(getSelected());
}
});
panel.addButton(select);
add(panel);
forceLayout();
@ -249,30 +264,30 @@ public class DialogCodelistSelection extends Window {
}
});
}
protected void initLoad(){
TDGWTServiceAsync.INSTANCE.setCodelistsPagingLoader(new AsyncCallback<Void>(){
@Override
public void onFailure(Throwable caught) {
Log.debug("Error in setCodelistsPagingLoader",
caught.getMessage());
caught.printStackTrace();
alert("Error Retrieving Codelist",
"Error error in retrieving the codelists during the initialization phase!");
}
protected void initLoad() {
TDGWTServiceAsync.INSTANCE
.setCodelistsPagingLoader(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
Log.debug("Error in setCodelistsPagingLoader",
caught.getMessage());
caught.printStackTrace();
alert("Error Retrieving Codelist",
"Error error in retrieving the codelists during the initialization phase!");
}
@Override
public void onSuccess(Void result) {
create();
}
});
@Override
public void onSuccess(Void result) {
create();
}
});
}
protected HandlerRegistration addSelectionHandler(
@ -280,16 +295,14 @@ public class DialogCodelistSelection extends Window {
SelectionHandler<TabResource> hand = new SelectionHandler<TabResource>() {
public void onSelection(SelectionEvent<TabResource> event) {
// tabResourcesSelectionPanel.getSelectedItem();
// getWizardWindow().setEnableNextButton(true);
select.enable();
}
};
return grid.getSelectionModel().addSelectionHandler(hand);
}
public TabResource getSelectedItem() {
protected TabResource getSelected() {
return grid.getSelectionModel().getSelectedItem();
}
@ -314,4 +327,45 @@ public class DialogCodelistSelection extends Window {
}
/**
* {@inheritDoc}
*/
@Override
protected void initTools() {
super.initTools();
closeBtn.addSelectHandler(new SelectHandler() {
public void onSelect(SelectEvent event) {
fireAborted();
hide();
}
});
}
public void addListener(CodelistSelectionListener listener) {
listeners.add(listener);
}
public void removeListener(CodelistSelectionListener listener) {
listeners.remove(listener);
}
public void fireCompleted(TabResource tabResource) {
for (CodelistSelectionListener listener : listeners)
listener.selected(tabResource);
}
public void fireAborted() {
for (CodelistSelectionListener listener : listeners)
listener.aborted();
}
public void fireFailed(String reason, String details) {
for (CodelistSelectionListener listener : listeners)
listener.failed(reason, details);
}
}