*
*/
package com.logikas.erp.client.ui;
import com.google.gwt.user.client.ui.HasConstrainedValue;
import com.logikas.erp.client.activity.presenter.MutablePresenter;
import com.logikas.erp.shared.proxy.CityProxy;
/**
* Package: com.logikas.erp.client.ui
* File: AddressView.java
* Date: 11/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public interface AddressView extends View{
public interface Presenter extends MutablePresenter<AddressView>{
}
HasConstrainedValue<CityProxy> getCitys();
}
/**
*
*/
package com.logikas.erp.client.ui;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.IsEditor;
import com.google.gwt.user.client.ui.HasConstrainedValue;
import com.logikas.erp.client.activity.presenter.NavigationPresenter;
import com.logikas.erp.shared.proxy.CityProxy;
/**
* Package: com.logikas.erp.client.ui
* File: SelectorCityView.java
* Date: 11/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public interface SelectorCityView extends IsEditor<Editor<CityProxy>>, View{
public interface Presenter extends NavigationPresenter<SelectorCityView>{}
HasConstrainedValue<CityProxy> getListCity();
}
/**
*
*/
package com.logikas.erp.client.ui;
import com.google.gwt.editor.client.Editor;
import com.google.web.bindery.requestfactory.gwt.client.RequestFactoryEditorDriver;
import com.google.web.bindery.requestfactory.shared.RequestFactory;
import com.logikas.erp.client.activity.presenter.MutablePresenter;
import com.logikas.erp.shared.proxy.TercerosProxy;
/**
* Package: com.logikas.erp.client.ui File: TerceroView.java Date: 11/10/2011
*
* Representa el formulario de carga de la informacion asociada a un tercero
*
* @autor cristian - Logikas Conectando Ideas
*/
public interface TerceroNewView extends View {
public interface Presenter extends MutablePresenter<TerceroNewView>{
}
AddressView getAddressView();
RequestFactoryEditorDriver<TercerosProxy, ? extends Editor<TercerosProxy>> createEditorDriver(
RequestFactory rf);
}
/**
*
*/
package com.logikas.erp.client.ui;
import com.google.gwt.user.client.ui.IsWidget;
/**
* Package: com.logikas.erp.client.ui File: View.java Date: 03/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public interface View extends IsWidget {
}
/**
*
*/
package com.logikas.erp.client.ui.impl;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.ui.client.ValueBoxEditorDecorator;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasConstrainedValue;
import com.google.gwt.user.client.ui.Widget;
import com.logikas.erp.client.Constans;
import com.logikas.erp.client.ui.AddressView;
import com.logikas.erp.client.ui.SelectorCityView;
import com.logikas.erp.shared.proxy.AddressProxy;
import com.logikas.erp.shared.proxy.CityProxy;
import javax.inject.Inject;
import javax.inject.Named;
/**
* Package: com.logikas.erp.client.ui.impl File: AddressWidget.java Date: 11/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public class AddressEditor implements AddressView, Editor<AddressProxy> {
private static AddressWidgetUiBinder uiBinder = GWT.create(AddressWidgetUiBinder.class);
private HTMLPanel root;
private AddressView.Presenter presenter;
@UiField
ValueBoxEditorDecorator<String> address;
@UiField
ValueBoxEditorDecorator<Integer> number;
@UiField
ValueBoxEditorDecorator<String> code;
@UiField(provided = true)
SelectorCityView city;
interface AddressWidgetUiBinder extends UiBinder<HTMLPanel, AddressEditor> {
}
@Inject
public AddressEditor(
AsyncProvider<SelectorCityView> selectorCity,
@Named(Constans.AddressNewPresenter) AddressView.Presenter presenter) {
this.presenter = presenter;
// TODO ver si hay otra forma de inicializar las vistas
selectorCity.get(new AsyncCallback<SelectorCityView>() {
@Override
public void onSuccess(SelectorCityView result) {
city = result;
init();
}
@Override
public void onFailure(Throwable caught) {
}
});
}
private void init(){
root = uiBinder.createAndBindUi(this);
presenter.onCreate(this);
}
@Override
public Widget asWidget() {
return root;
}
@Override
public HasConstrainedValue<CityProxy> getCitys() {
return city.getListCity();
}
}
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:l="urn:import:com.logikas.erp.client.ui"
xmlns:e="urn:import:com.google.gwt.editor.ui.client">
<g:HTMLPanel>
<label for="name">Name:</label>
<e:ValueBoxEditorDecorator ui:field="address">
<e:valuebox>
<g:TextBox />
</e:valuebox>
</e:ValueBoxEditorDecorator>
<label for="number">Number:</label>
<e:ValueBoxEditorDecorator ui:field="number">
<e:valuebox>
<g:IntegerBox />
</e:valuebox>
</e:ValueBoxEditorDecorator>
<label for="code">Code:</label>
<e:ValueBoxEditorDecorator ui:field="code">
<e:valuebox>
<g:TextBox />
</e:valuebox>
</e:ValueBoxEditorDecorator>
<!-- l:CityListBox ui:field="city"></l:CityListBox-->
<l:SelectorCityView ui:field="city"></l:SelectorCityView>
</g:HTMLPanel>
</ui:UiBinder> /**
*
*/
package com.logikas.erp.client.ui.impl;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasConstrainedValue;
import com.google.gwt.user.client.ui.Widget;
import com.logikas.erp.client.Constans;
import com.logikas.erp.client.place.SearchCityPlace;
import com.logikas.erp.client.resources.ClientResource;
import com.logikas.erp.client.ui.SelectorCityView;
import com.logikas.erp.client.ui.widget.CityListBox;
import com.logikas.erp.shared.proxy.CityProxy;
import javax.inject.Inject;
import javax.inject.Named;
/**
* Package: com.logikas.erp.client.ui.impl File: SelectorCityWidget.java Date: 11/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public class SelectorCityWidget implements SelectorCityView {
private static SelectorCityWidgetUiBinder uiBinder = GWT.create(SelectorCityWidgetUiBinder.class);
interface SelectorCityWidgetUiBinder extends UiBinder<HTMLPanel, SelectorCityWidget> {
}
private HTMLPanel root;
@UiField
ClientResource res;
@UiField
CityListBox cityListBox;
@UiField
Button searchCity;
@UiField
Button newCity;
private final SelectorCityView.Presenter presenter;
@Inject
public SelectorCityWidget(
final @Named(Constans.SelectorCityPresenter) SelectorCityView.Presenter presenter ) {
root = uiBinder.createAndBindUi(this);
res.erpLgkStyle().ensureInjected();
this.presenter = presenter;
this.presenter.onCreate(this);
}
@Override
public HasConstrainedValue<CityProxy> getListCity() {
return cityListBox;
}
@Override
public Widget asWidget() {
return root;
}
@Override
public Editor<CityProxy> asEditor() {
return cityListBox.asEditor();
}
@UiHandler("searchCity")
void onSearchCityClick(ClickEvent event) {
presenter.goTo(new SearchCityPlace(true));
}
}
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:l="urn:import:com.logikas.erp.client.ui.widget">
<ui:with field='res'
type='com.logikas.erp.client.resources.ClientResource' />
<g:HTMLPanel>
<div class="{res.erpLgkStyle.borders}">
<l:CityListBox ui:field="cityListBox"></l:CityListBox>
<g:Button stylePrimaryName="{res.erpLgkStyle.button}" addStyleNames="{res.erpLgkStyle.gray}"
ui:field="searchCity">Search</g:Button>
<g:Button stylePrimaryName="{res.erpLgkStyle.button}" addStyleNames="{res.erpLgkStyle.gray}"
ui:field="newCity">New</g:Button>
</div>
</g:HTMLPanel>
</ui:UiBinder> /**
*
*/
package com.logikas.erp.client.ui.impl;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.ui.client.ValueBoxEditorDecorator;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.name.Named;
import com.google.web.bindery.requestfactory.gwt.client.RequestFactoryEditorDriver;
import com.google.web.bindery.requestfactory.shared.RequestFactory;
import com.logikas.erp.client.Constans;
import com.logikas.erp.client.resources.ClientResource;
import com.logikas.erp.client.ui.AddressView;
import com.logikas.erp.client.ui.TerceroNewView;
import com.logikas.erp.shared.proxy.TercerosProxy;
import javax.inject.Inject;
/**
* Package: com.logikas.erp.client.ui.impl File: TerceroEditor.java Date: 09/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public class TerceroEditor implements TerceroNewView, Editor<TercerosProxy> {
private static TerceroEditorUiBinder uiBinder = GWT.create(TerceroEditorUiBinder.class);
interface TerceroEditorUiBinder extends UiBinder<SimplePanel, TerceroEditor> {
}
interface Driver extends RequestFactoryEditorDriver<TercerosProxy, TerceroEditor> {
}
private SimplePanel root;
@UiField
ClientResource res;
@UiField
ValueBoxEditorDecorator<String> name;
@UiField
ValueBoxEditorDecorator<String> lastName;
@UiField(provided = true)
AddressView address;
private final TerceroNewView.Presenter presenter;
@Inject
public TerceroEditor(
AsyncProvider<AddressView> addressView,
@Named(Constans.TerceroNewPresenter) TerceroNewView.Presenter presenter) {
this.presenter = presenter;
//TODO ver si existe otra forma de inicializar las vistas
addressView.get(new AsyncCallback<AddressView>() {
@Override
public void onSuccess(AddressView result) {
address = result;
ini();
}
@Override
public void onFailure(Throwable caught) {
}
});
//Inyeccion del presenter
//Creacion de la interface por parte del Editor,
}
private void ini(){
//Inicializacion de la interface grafica
root = uiBinder.createAndBindUi(this);
res.erpLgkStyle().ensureInjected();
presenter.onCreate(this);
}
@Override
public RequestFactoryEditorDriver<TercerosProxy, ? extends Editor<TercerosProxy>> createEditorDriver(
RequestFactory rf) {
Driver driver = GWT.create(Driver.class);
driver.initialize(rf, this);
return driver;
}
@Override
public Widget asWidget() {
return root;
}
@Override
public AddressView getAddressView() {
return address;
}
@UiHandler("save")
void onSaveClick(ClickEvent event) {
this.presenter.save();
}
@UiHandler("cancel")
void onCancelClick(ClickEvent event) {
}
}
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:e="urn:import:com.google.gwt.editor.ui.client"
xmlns:l="urn:import:com.logikas.erp.client.ui">
<ui:with field='res'
type='com.logikas.erp.client.resources.ClientResource' />
<g:SimplePanel>
<g:HTMLPanel>
<label for="name">Nombre:</label>
<e:ValueBoxEditorDecorator ui:field="name">
<e:valuebox>
<g:TextBox />
</e:valuebox>
</e:ValueBoxEditorDecorator>
<label for="lastname">Apellido:</label>
<e:ValueBoxEditorDecorator ui:field="lastName">
<e:valuebox>
<g:TextBox />
</e:valuebox>
</e:ValueBoxEditorDecorator>
<fieldset class="{res.erpLgkStyle.borders}">
<legend>Address:</legend>
<l:AddressView ui:field="address"></l:AddressView>
</fieldset>
<div class="{res.erpLgkStyle.buttons}">
<g:Button stylePrimaryName="{res.erpLgkStyle.button}" addStyleNames="{res.erpLgkStyle.blue}" ui:field="save">Save</g:Button>
<g:Button stylePrimaryName="{res.erpLgkStyle.button}" addStyleNames="{res.erpLgkStyle.blue}" ui:field="cancel">Cancel</g:Button>
</div>
</g:HTMLPanel>
</g:SimplePanel>
</ui:UiBinder> /**
*
*/
package com.logikas.erp.client.activity.presenter;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.web.bindery.requestfactory.gwt.client.RequestFactoryEditorDriver;
import com.google.web.bindery.requestfactory.shared.Receiver;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.Violation;
import com.logikas.erp.client.place.DefaultPlace;
import com.logikas.erp.client.ui.TerceroNewView;
import com.logikas.erp.shared.proxy.AddressProxy;
import com.logikas.erp.shared.proxy.CityProxy;
import com.logikas.erp.shared.proxy.TercerosProxy;
import com.logikas.erp.shared.request.ErpRequestFactory;
import com.logikas.erp.shared.request.TercerosRequest;
import org.apache.jasper.compiler.ErrorHandler;
import java.util.List;
import java.util.Set;
import javax.inject.Inject;
import javax.validation.ConstraintViolation;
/**
* Package: com.logikas.erp.client.presenter File: TerceroEditorPresenter.java Date: 12/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public class TerceroNewEditorPresenter implements TerceroNewView.Presenter {
private final PlaceController placeController;
private final ErpRequestFactory requestFactory;
private RequestFactoryEditorDriver<TercerosProxy, ? extends Editor<TercerosProxy>> terceroDriver;
@Inject
public TerceroNewEditorPresenter(final AddressNewPresenter addressPresenter,
final ErpRequestFactory requestFactory, final PlaceController placeController) {
this.placeController = placeController;
this.requestFactory = requestFactory;
}
@Override
public void goTo(Place place) {
placeController.goTo(place);
}
@Override
public void save() {
RequestContext context = terceroDriver.flush();
boolean hasClientErrors = terceroDriver.hasErrors();
if (!hasClientErrors) {
context.fire(new Receiver<Void>() {
@Override
public void onSuccess(Void response) {
placeController.goTo(new DefaultPlace());
}
/* (non-Javadoc)
* @see com.google.web.bindery.requestfactory.shared.Receiver#onViolation(java.util.Set)
*/
@Override
public void onViolation(Set<Violation> errors) {
terceroDriver.setViolations(errors);
}
@Override
public void onConstraintViolation(Set<ConstraintViolation<?>> violations) {
terceroDriver.setConstraintViolations(violations);
}
});
}
}
@Override
public void onCreate(final TerceroNewView view) {
terceroDriver = view.createEditorDriver(requestFactory);
requestFactory.getCityRequest().findAll().fire(new Receiver<List<CityProxy>>() {
@Override
public void onSuccess(List<CityProxy> citys) {
view.getAddressView().getCitys().setAcceptableValues(citys);
TercerosRequest context = requestFactory.getTercerosRequest();
TercerosProxy tercero = context.create(TercerosProxy.class);
AddressProxy address = context.create(AddressProxy.class);
// address.setVersion(new Long(0));
tercero.setAddress(address);
// tercero.setVersion(new Long(0));
context.persist(tercero).with(terceroDriver.getPaths());
terceroDriver.edit(tercero, context);
}
});
}
@Override
public void delete() {
// TODO Auto-generated method stub
}
@Override
public void onPause() {
}
@Override
public void onStop() {
}
@Override
public void setContentView(final AcceptsOneWidget container) {
//
}
}
/**
*
*/
package com.logikas.erp.client.activity.presenter;
import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.logikas.erp.client.ui.AddressView;
import javax.inject.Inject;
/**
* Package: com.logikas.erp.client.presenter File: AddressPresenter.java Date: 18/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public class AddressNewPresenter implements AddressView.Presenter {
private final PlaceController placeController;
@Inject
public AddressNewPresenter(
final PlaceController placeController) {
this.placeController = placeController;
}
@Override
public void goTo(Place place) {
placeController.goTo(place);
}
@Override
public void save() {
}
@Override
public void delete() {
}
@Override
public void onCreate(AddressView view) {
}
@Override
public void onPause() {
}
@Override
public void onStop() {
}
@Override
public void setContentView(AcceptsOneWidget container) {
}
}/**
*
*/
package com.logikas.erp.client.activity.presenter;
import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Provider;
import com.google.web.bindery.requestfactory.shared.Receiver;
import com.logikas.erp.client.ui.SelectorCityView;
import com.logikas.erp.shared.proxy.CityProxy;
import com.logikas.erp.shared.request.ErpRequestFactory;
import java.util.List;
import javax.inject.Inject;
/**
* Package: com.logikas.erp.client.presenter File: SelectorCityPresenter.java Date: 13/10/2011
*
* @autor cristian - Logikas Conectando Ideas
*/
public class SelectorCityPresenter implements SelectorCityView.Presenter {
private final PlaceController placeController;
private final ErpRequestFactory requestFactory;
@Inject
public SelectorCityPresenter(final PlaceController placeController, final ErpRequestFactory requestFactory) {
this.placeController = placeController;
this.requestFactory = requestFactory;
}
@Override
public void goTo(Place place) {
placeController.goTo(place);
}
@Override
public void onCreate(final SelectorCityView view) {
requestFactory.getCityRequest().findAll().fire(new Receiver<List<CityProxy>>() {
@Override
public void onSuccess(List<CityProxy> response) {
view.getListCity().setAcceptableValues(response);
}
});
}
@Override
public void onPause() {
// TODO Auto-generated method stub
}
@Override
public void onStop() {
// TODO Auto-generated method stub
}
@Override
public void setContentView(AcceptsOneWidget container) {
// TODO Auto-generated method stub
}
}
A.U.S Cristian Rinaldi Teléfono Móvil: (0342) 155 238 083 www.logikas.com Lisandro de la Torre 2643 Of 5 - 3000 - Santa Fe Teléfono Fijo: (0342) 483 5138 |
--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
No comments:
Post a Comment