ItEr45S19CUTraspasoDeResponsabilidadesTraballoEntreUnidadesPlanificacion: Adding radiogroups to choose the type of reassignment
This commit is contained in:
parent
0a9d710f22
commit
65d01a9aef
2 changed files with 134 additions and 5 deletions
|
|
@ -19,15 +19,27 @@
|
|||
*/
|
||||
package org.navalplanner.web.planner.reassign;
|
||||
|
||||
import static org.navalplanner.business.i18n.I18nHelper._;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.zkoss.ganttz.timetracker.ICellForDetailItemRenderer;
|
||||
import org.zkoss.ganttz.timetracker.OnColumnsRowRenderer;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
import org.zkoss.zk.ui.event.EventListener;
|
||||
import org.zkoss.zk.ui.event.Events;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Datebox;
|
||||
import org.zkoss.zul.Grid;
|
||||
import org.zkoss.zul.Radio;
|
||||
import org.zkoss.zul.Radiogroup;
|
||||
import org.zkoss.zul.SimpleListModel;
|
||||
import org.zkoss.zul.Window;
|
||||
|
||||
/**
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
*
|
||||
|
|
@ -36,6 +48,61 @@ import org.zkoss.zul.Window;
|
|||
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
|
||||
public class ReassignController extends GenericForwardComposer {
|
||||
|
||||
public enum Type {
|
||||
ALL {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return _("All");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needsAssociatedDate() {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
FROM_TODAY {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return _("From Today");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needsAssociatedDate() {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
FROM_CHOOSEN {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return _("From Choosen");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needsAssociatedDate() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
public static Type fromRadio(Radio selectedItem) {
|
||||
return Type.valueOf(selectedItem.getValue());
|
||||
}
|
||||
|
||||
public Radio createRadio() {
|
||||
Radio result = new Radio();
|
||||
result.setLabel(getName());
|
||||
result.setValue(this.toString());
|
||||
return result;
|
||||
}
|
||||
|
||||
public abstract String getName();
|
||||
|
||||
public abstract boolean needsAssociatedDate();
|
||||
|
||||
}
|
||||
|
||||
public static void openOn(org.zkoss.zk.ui.Component component) {
|
||||
Window result = (Window) Executions.createComponents(
|
||||
"/planner/reassign.zul", component, Collections.emptyMap());
|
||||
|
|
@ -46,6 +113,14 @@ public class ReassignController extends GenericForwardComposer {
|
|||
|
||||
private Window window;
|
||||
|
||||
private Radiogroup reassigningTypeSelector;
|
||||
|
||||
private Grid reassigningTypesGrid;
|
||||
|
||||
private Datebox associatedDate;
|
||||
|
||||
private Type currentType = Type.ALL;
|
||||
|
||||
private void showWindow() {
|
||||
try {
|
||||
window.setMode("modal");
|
||||
|
|
@ -59,8 +134,53 @@ public class ReassignController extends GenericForwardComposer {
|
|||
super.doAfterCompose(comp);
|
||||
this.window = (Window) comp;
|
||||
comp.setAttribute("controller", this);
|
||||
associatedDate.setVisible(currentType.needsAssociatedDate());
|
||||
fillGridWithRadios();
|
||||
listenForTypeChange();
|
||||
reassigningTypesGrid.invalidate();
|
||||
}
|
||||
|
||||
|
||||
private void fillGridWithRadios() {
|
||||
reassigningTypesGrid.setModel(new SimpleListModel(Type
|
||||
.values()));
|
||||
reassigningTypesGrid.setRowRenderer(OnColumnsRowRenderer.create(
|
||||
reassigningTypesRenderer(), Arrays.asList(0)));
|
||||
}
|
||||
|
||||
private ICellForDetailItemRenderer<Integer, Type> reassigningTypesRenderer() {
|
||||
return new ICellForDetailItemRenderer<Integer, Type>() {
|
||||
@Override
|
||||
public org.zkoss.zk.ui.Component cellFor(Integer column, Type type) {
|
||||
Radio radio = type.createRadio();
|
||||
radio.setChecked(currentType == type);
|
||||
return radio;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void listenForTypeChange() {
|
||||
reassigningTypeSelector.addEventListener(Events.ON_CHECK,
|
||||
new EventListener() {
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
Radio selectedItem = reassigningTypeSelector
|
||||
.getSelectedItem();
|
||||
newTypeChoosen(Type.fromRadio(selectedItem));
|
||||
associatedDate.setVisible(currentType
|
||||
.needsAssociatedDate());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void newTypeChoosen(Type fromRadio) {
|
||||
this.currentType = fromRadio;
|
||||
associatedDate.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
public void confirm() {
|
||||
window.setVisible(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,10 +29,19 @@
|
|||
<window border="normal" title="${i18n:_('Reassining')}"
|
||||
apply="${controllerForReassigning}">
|
||||
|
||||
<hbox>
|
||||
<vbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<groupbox mold="3d" style="margin-top: 5px" closable="false">
|
||||
<caption label="${i18n:_('Reassigning type')}:" />
|
||||
<hbox>
|
||||
<radiogroup id="reassigningTypeSelector">
|
||||
<grid id="reassigningTypesGrid">
|
||||
<columns>
|
||||
<column />
|
||||
</columns>
|
||||
</grid>
|
||||
</radiogroup>
|
||||
<datebox id="associatedDate" />
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<hbox>
|
||||
<button label="${i18n:_('Accept')}"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue