/** * */ package org.gcube.portlets.user.td.sdmximportwidget.client; import org.gcube.portlets.user.td.gwtservice.shared.TabResource; import org.gcube.portlets.user.td.gwtservice.shared.sdmx.SDMXImportSession; import org.gcube.portlets.user.td.sdmximportwidget.client.general.WizardCard; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.ui.VerticalPanel; import com.sencha.gxt.widget.core.client.FramedPanel; 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.SelectEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; import com.sencha.gxt.widget.core.client.form.FieldLabel; import com.sencha.gxt.widget.core.client.form.FieldSet; import com.sencha.gxt.widget.core.client.form.TextArea; import com.sencha.gxt.widget.core.client.form.TextField; /** * * @author "Giancarlo Panichi" * g.panichi@isti.cnr.it * */ public class SDMXTableDetailCard extends WizardCard { protected SDMXImportSession importSession; protected SDMXTableDetailCard thisCard; protected static final AgenciesProperties agenciesProperties = GWT.create(AgenciesProperties.class); protected VerticalLayoutContainer p = new VerticalLayoutContainer(); protected VerticalPanel tableDetailPanel; protected TextField name; protected TextArea description; protected TextArea rights; protected TextField agencyName; protected TextButton checkButton; //protected ComboBox combo=null; TabResource detail=new TabResource(); public SDMXTableDetailCard(final SDMXImportSession importSession) { super("SDMX Table Detail", ""); this.importSession = importSession; thisCard=this; tableDetailPanel = new VerticalPanel(); tableDetailPanel.setSpacing(4); tableDetailPanel.setWidth("100%"); tableDetailPanel.setHeight("100%"); FramedPanel form2 = new FramedPanel(); form2.setHeadingText("Details"); //form2.setWidth(350); FieldSet fieldSet = new FieldSet(); fieldSet.setHeadingText("Information"); fieldSet.setCollapsible(false); form2.add(fieldSet); //VerticalLayoutContainer p = new VerticalLayoutContainer(); fieldSet.add(p); name = new TextField(); name.setAllowBlank(false); name.setEmptyText("Enter a name..."); name.setValue(importSession.getSelectedCodelist().getName()); p.add(new FieldLabel(name, "Name"), new VerticalLayoutData(1, -1)); description = new TextArea(); description.setAllowBlank(false); description.setEmptyText("Enter a description..."); description.setValue(importSession.getSelectedCodelist().getDescription()); p.add(new FieldLabel(description, "Description"), new VerticalLayoutData(1, -1)); rights = new TextArea(); rights.setEmptyText("Enter rights..."); rights.setAllowBlank(false); p.add(new FieldLabel(rights, "Rights"), new VerticalLayoutData(1, -1)); /* ListStore agenciesStore = new ListStore(agenciesProperties.key()); RpcProxy> proxy = new RpcProxy>() { public void load(PagingLoadConfig loadConfig, final AsyncCallback> callback) { loadData(loadConfig, callback); } }; final PagingLoader> loader = new PagingLoader>(proxy); loader.setRemoteSort(false); loader.addLoadHandler(new LoadResultListStoreBinding>(agenciesStore)); //agenciesStore.addAll(TestData.getStates()); combo = new ComboBox(agenciesStore, agenciesProperties.nameLabel()); addHandlersForEventObservation(combo, agenciesProperties.nameLabel()); combo.setLoader(loader); combo.setEmptyText("Enter Agency..."); combo.setTriggerAction(TriggerAction.ALL); combo.setAllowBlank(false); combo.setForceSelection(true); combo.setVisible(true); */ //HorizontalLayoutContainer agenciesSelect= selectAgencies(); //p.add(new FieldLabel(combo, "Agencies"), new VerticalLayoutData(1, -1)); /*FieldLabel comboLabel=new FieldLabel(combo, ""); comboLabel.setLabelSeparator(""); p.add(comboLabel, new VerticalLayoutData(1, -1)); */ agencyName = new TextField(); agencyName.setVisible(true); agencyName.setEmptyText("Enter Agency..."); agencyName.setValue(importSession.getSelectedCodelist().getAgencyId()); FieldLabel agencyNameLabel=new FieldLabel(agencyName, "Agency"); agencyNameLabel.setLabelSeparator(""); p.add(agencyNameLabel, new VerticalLayoutData(1, -1)); checkButton = new TextButton("Save"); checkButton.addSelectHandler(new SelectHandler() { @Override public void onSelect(SelectEvent event) { checkData(); } }); form2.addButton(checkButton); tableDetailPanel.add(form2); setContent(tableDetailPanel); } protected void checkData() { if (name.getValue() == null || name.getValue().isEmpty() || description.getValue() == null || description.getValue().isEmpty() || rights.getValue() == null || rights.getValue().isEmpty() || agencyName.getValue() == null || agencyName.getValue().isEmpty() ) { return; } else { name.setReadOnly(true); description.setReadOnly(true); rights.setReadOnly(true); agencyName.setReadOnly(true); checkButton.disable(); getWizardWindow().setEnableNextButton(true); } } /*protected void loadData(PagingLoadConfig loadConfig, final AsyncCallback> callback) { TDGXTServiceAsync.INSTANCE.getAgencies(new AsyncCallback>() { @Override public void onFailure(Throwable caught) { callback.onFailure(caught); } @Override public void onSuccess(List result) { Log.trace("loaded "+result.size()+" agencies"); for(int i=0; i(result, result.size(), 0)); } }); }*/ /** * Helper to add handlers to observe events that occur on each combobox private void addHandlersForEventObservation(final ComboBox combo, final LabelProvider labelProvider) { combo.addValueChangeHandler(new ValueChangeHandler() { @Override public void onValueChange(ValueChangeEvent event) { Info.display("Value Changed", "New value: " + (event.getValue() == null ? combo.getValue() : labelProvider.getLabel(event.getValue()) + "!")); } }); combo.addSelectionHandler(new SelectionHandler() { @Override public void onSelection(SelectionEvent event) { Info.display("Agency Selected", "You selected " + (event.getSelectedItem() == null ? combo.getValue() : labelProvider.getLabel(event.getSelectedItem()) + "!")); } }); } */ @Override public void setup(){ Command sayNextCard = new Command() { @Override public void execute() { detail.setName(name.getCurrentValue()); //detail.setAgency(combo.getSelectedText()); detail.setAgency(agencyName.getCurrentValue()); detail.setDescription(description.getCurrentValue()); detail.setRight(rights.getCurrentValue()); importSession.setTabResource(detail); SDMXOperationInProgressCard sdmxOperationInProgressCard = new SDMXOperationInProgressCard( importSession); getWizardWindow() .addCard(sdmxOperationInProgressCard); Log.info("NextCard SDMXOperationInProgressCard"); getWizardWindow().nextCard(); } }; getWizardWindow().setNextButtonCommand(sayNextCard); Command sayPreviousCard = new Command() { public void execute() { try { getWizardWindow().previousCard(); getWizardWindow().removeCard(thisCard); Log.info("Remove SDMXTableDetailCard"); } catch (Exception e) { Log.error("sayPreviousCard :" + e.getLocalizedMessage()); } } }; getWizardWindow().setPreviousButtonCommand(sayPreviousCard); getWizardWindow().setEnableNextButton(false); } /* private HorizontalLayoutContainer selectAgencies(){ HorizontalLayoutContainer documentSelectionPanel = new HorizontalLayoutContainer(); Radio radioAgenciesAlready = new Radio(); radioAgenciesAlready.setBoxLabel("Present"); radioAgenciesAlready.setValue(true); radioAgenciesAlready.setName("Agencies"); Radio radioAgencyNew = new Radio(); radioAgencyNew.setBoxLabel("New"); radioAgencyNew.setName("AgencyNew"); documentSelectionPanel.add(radioAgenciesAlready); documentSelectionPanel.add(radioAgencyNew); ToggleGroup toggle = new ToggleGroup(); toggle.add(radioAgenciesAlready); toggle.add(radioAgencyNew); toggle.addValueChangeHandler(new ValueChangeHandler>() { @Override public void onValueChange(ValueChangeEvent> event) { try { ToggleGroup group = (ToggleGroup) event.getSource(); Radio radio = (Radio) group.getValue(); Log.info("Document Selected:" + radio.getName()); if (radio.getName().compareTo("AgencyNew") == 0) { //agencyName.setVisible(true); //combo.setVisible(false); // } else { if (radio.getName().compareTo("Agency") == 0) { //agencyName.setVisible(false); //combo.setVisible(true); // } else { } } } catch (Exception e) { Log.error("ToggleGroup: onValueChange " + e.getLocalizedMessage()); } } }); return documentSelectionPanel; } */ }