tabular-data-column-widget/src/main/java/org/gcube/portlets/user/td/columnwidget/client/mapping/ColumnMappingDialog.java

158 lines
3.5 KiB
Java

package org.gcube.portlets.user.td.columnwidget.client.mapping;
import java.util.ArrayList;
import org.gcube.portlets.user.td.columnwidget.client.resources.ResourceBundle;
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import com.allen_sauer.gwt.log.client.Log;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
/**
*
* @author "Giancarlo Panichi"
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ColumnMappingDialog extends Window {
protected String WIDTH = "650px";
protected String HEIGHT = "530px";
protected TRId trId;
protected ColumnData selectedColumn;
protected TabResource dimensionTR;
protected ColumnData columnReference;
protected EventBus eventBus;
protected ArrayList<ColumnMappingListener> listeners;
public ColumnMappingDialog(TRId trId, ColumnData selectedColumn,
TabResource dimensionTR, ColumnData columnReference,
EventBus eventBus) {
this.trId = trId;
this.selectedColumn = selectedColumn;
this.dimensionTR = dimensionTR;
this.columnReference= columnReference;
this.eventBus = eventBus;
Log.debug("ColumnMappingDialog: [trId:" + trId
+ ", selectedColumn:" + selectedColumn + ", dimensionTR:"
+ dimensionTR + ", columnReference:" + columnReference
+ ", eventBus:" + eventBus
+ "]");
listeners=new ArrayList<ColumnMappingListener>();
initWindow();
ColumnMappingPanel columnMappingPanel = new ColumnMappingPanel(this,
trId, selectedColumn,
dimensionTR, columnReference,
eventBus);
add(columnMappingPanel);
}
/**
*
*/
protected void initWindow() {
setWidth(WIDTH);
setHeight(HEIGHT);
setBodyBorder(false);
setResizable(false);
setHeadingText("Column Mapping");
setClosable(true);
setModal(true);
forceLayoutOnResize = true;
getHeader().setIcon(ResourceBundle.INSTANCE.replaceBatch());
}
/**
* {@inheritDoc}
*/
@Override
protected void initTools() {
super.initTools();
closeBtn.addSelectHandler(new SelectHandler() {
public void onSelect(SelectEvent event) {
close();
}
});
}
/**
*
*/
public void close() {
fireAbortedColumnMapping();
hide();
}
/**
*
* @param columnMappingList
*/
public void saveMapping(ColumnMappingList columnMappingList) {
fireSelectedColumnMapping(columnMappingList);
hide();
}
/**
*
* @param listener
*/
public void addColumnMappingListener(ColumnMappingListener listener) {
listeners.add(listener);
}
/**
*
* @param listener
*/
public void removeColumnMappingListener(ColumnMappingListener listener) {
listeners.remove(listener);
}
/**
*
* @param columnMappingList
*/
public void fireSelectedColumnMapping(ColumnMappingList columnMappingList) {
for (ColumnMappingListener listener : listeners)
listener.selectedColumnMapping(columnMappingList);
hide();
}
/**
*
*/
public void fireAbortedColumnMapping() {
for (ColumnMappingListener listener : listeners)
listener.abortedColumnMapping();
hide();
}
/**
*
* @param reason
* @param detail
*/
public void fireFailedColumnMapping(String reason, String detail) {
for (ColumnMappingListener listener : listeners)
listener.failedColumnMapping(reason, detail);
hide();
}
}