Skip to content

Commit 8dd06f4

Browse files
committed
Unstable commit need to be cleaned
1 parent 0c18f34 commit 8dd06f4

16 files changed

+659
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.arm.nimbus.collab.client.editor;
2+
3+
4+
import com.arm.nimbus.collab.client.model.TaskProxy;
5+
import com.arm.nimbus.collab.client.requests.ApplicationRequestFactory;
6+
import com.arm.nimbus.collab.client.sdk.editor.AbstractNimbusEditor.EditorMode;
7+
import com.google.gwt.core.client.GWT;
8+
import com.google.gwt.event.shared.EventBus;
9+
import com.google.gwt.place.shared.PlaceController;
10+
import com.google.gwt.uibinder.client.UiBinder;
11+
import com.google.gwt.uibinder.client.UiFactory;
12+
import com.google.gwt.uibinder.client.UiField;
13+
import com.google.gwt.user.cellview.client.CellList;
14+
import com.google.gwt.user.client.ui.Composite;
15+
import com.google.gwt.user.client.ui.Widget;
16+
import com.google.gwt.view.client.SelectionChangeEvent;
17+
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
18+
import com.google.gwt.view.client.SingleSelectionModel;
19+
import com.google.inject.Inject;
20+
21+
public class TaskBoard extends Composite {
22+
23+
private static TaskBoardUiBinder uiBinder = GWT
24+
.create(TaskBoardUiBinder.class);
25+
26+
interface TaskBoardUiBinder extends UiBinder<Widget, TaskBoard> {
27+
}
28+
29+
@Inject
30+
EventBus eventBus;
31+
32+
@Inject
33+
PlaceController placeController;
34+
35+
ApplicationRequestFactory rf;
36+
37+
public TaskBoard() {
38+
initWidget(uiBinder.createAndBindUi(this));
39+
40+
final SingleSelectionModel<TaskProxy> selectionModel = new SingleSelectionModel<TaskProxy>();
41+
selectionModel.addSelectionChangeHandler(new Handler() {
42+
43+
@Override
44+
public void onSelectionChange(SelectionChangeEvent event) {
45+
TaskProxy entityProxy = (TaskProxy)selectionModel.getSelectedObject();
46+
GWT.log("Select : " + entityProxy.getTitle());
47+
editor.setInput(entityProxy, getRequestFactory(eventBus).taskRequest(), EditorMode.EDIT, placeController);
48+
}
49+
});
50+
list.setSelectionModel(selectionModel);
51+
}
52+
53+
@UiField
54+
CellList<TaskProxy> list;
55+
56+
@UiFactory CellList<TaskProxy> make(){
57+
// Cell formatter
58+
TaskTextCell ttc = new TaskTextCell();
59+
// Construct
60+
return new CellList<TaskProxy>(ttc);
61+
}
62+
63+
64+
@UiField
65+
TaskEditor editor;
66+
67+
private ApplicationRequestFactory getRequestFactory(EventBus eventBus) {
68+
if(rf == null){
69+
rf = GWT.create(ApplicationRequestFactory.class);
70+
rf.initialize(eventBus);
71+
}
72+
return rf;
73+
}
74+
75+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
2+
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
3+
xmlns:g='urn:import:com.google.gwt.user.client.ui'
4+
xmlns:c='urn:import:com.google.gwt.user.cellview.client'
5+
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"
6+
xmlns:e="urn:import:com.arm.nimbus.collab.client.editor">
7+
<g:HTMLPanel>
8+
<b:FluidContainer>
9+
<b:Row>
10+
<b:Column size="3">
11+
<c:CellList ui:field="list"/>
12+
</b:Column>
13+
<b:Column size="5">
14+
<e:TaskEditor ui:field="editor"/>
15+
</b:Column>
16+
</b:Row>
17+
</b:FluidContainer>
18+
</g:HTMLPanel>
19+
</ui:UiBinder>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.arm.nimbus.collab.client.editor;
2+
3+
import java.util.List;
4+
5+
import com.arm.nimbus.collab.client.CollabAbstractActivity;
6+
import com.arm.nimbus.collab.client.model.ProductProxy;
7+
import com.arm.nimbus.collab.client.model.TaskProxy;
8+
import com.arm.nimbus.collab.client.place.ApplicationPlace;
9+
import com.google.gwt.event.shared.EventBus;
10+
import com.google.gwt.place.shared.PlaceController;
11+
import com.google.gwt.user.client.ui.AcceptsOneWidget;
12+
import com.google.gwt.view.client.AsyncDataProvider;
13+
import com.google.gwt.view.client.HasData;
14+
import com.google.gwt.view.client.Range;
15+
import com.google.web.bindery.requestfactory.shared.Receiver;
16+
17+
public class TaskBoardActivity extends CollabAbstractActivity {
18+
19+
TaskBoard view;
20+
String productID ;
21+
22+
public TaskBoardActivity(PlaceController placeController, TaskBoardPlace place, TaskBoard taskboard) {
23+
super(placeController, place);
24+
this.view = taskboard;
25+
this.productID = place.getProductID();
26+
}
27+
28+
@Override
29+
public void start(AcceptsOneWidget panel, final EventBus eventBus) {
30+
panel.setWidget(view);
31+
32+
/*
33+
* Preload task
34+
*/
35+
final AsyncDataProvider<TaskProxy> dataProvider = new AsyncDataProvider<TaskProxy>() {
36+
37+
@Override
38+
protected void onRangeChanged(HasData<TaskProxy> display) {
39+
getRequestFactory(eventBus).taskRequest().findAll()
40+
.fire(new Receiver<List<TaskProxy>>() {
41+
@Override
42+
public void onSuccess(List<TaskProxy> response) {
43+
view.list.setRowData(0, response);
44+
}
45+
});
46+
}
47+
};
48+
Range range = view.list.getVisibleRange();
49+
view.list.setVisibleRangeAndClearData(range, true);
50+
dataProvider.addDataDisplay(view.list);
51+
}
52+
53+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.arm.nimbus.collab.client.editor;
2+
3+
import com.arm.nimbus.collab.client.place.ApplicationPlace;
4+
import com.google.gwt.place.shared.PlaceTokenizer;
5+
6+
public class TaskBoardPlace extends ApplicationPlace {
7+
8+
String productID;
9+
10+
public TaskBoardPlace(){
11+
}
12+
13+
public TaskBoardPlace(String productID) {
14+
this.productID = productID;
15+
}
16+
17+
public String getProductID(){
18+
return productID;
19+
}
20+
21+
public static class Tokenizer implements PlaceTokenizer<TaskBoardPlace> {
22+
23+
@Override
24+
public TaskBoardPlace getPlace(String token) {
25+
return new TaskBoardPlace(token); // productID == token
26+
}
27+
28+
@Override
29+
public String getToken(TaskBoardPlace place) {
30+
if(place == null){
31+
return "";
32+
}
33+
return place.getProductID();
34+
}
35+
}
36+
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
package com.arm.nimbus.collab.client.editor;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
import com.arm.nimbus.collab.client.model.TaskProxy;
7+
import com.arm.nimbus.collab.client.requests.TaskRequest;
8+
import com.arm.nimbus.collab.client.sdk.editor.AbstractNimbusEditor;
9+
import com.github.gwtbootstrap.client.ui.base.TextBox;
10+
import com.google.gwt.core.client.GWT;
11+
import com.google.gwt.editor.client.Editor;
12+
import com.google.gwt.event.dom.client.ClickEvent;
13+
import com.google.gwt.place.shared.Place;
14+
import com.google.gwt.uibinder.client.UiBinder;
15+
import com.google.gwt.uibinder.client.UiField;
16+
import com.google.gwt.uibinder.client.UiHandler;
17+
import com.google.gwt.user.client.Window;
18+
import com.google.gwt.user.client.ui.Widget;
19+
import com.google.web.bindery.requestfactory.gwt.client.RequestFactoryEditorDriver;
20+
import com.google.web.bindery.requestfactory.shared.InstanceRequest;
21+
22+
public class TaskEditor extends AbstractNimbusEditor<TaskProxy> {
23+
24+
@UiField
25+
TextBox title;
26+
27+
@UiField
28+
TextBox content;
29+
30+
@UiField
31+
TextBox status;
32+
33+
private static TaskEditorUiBinder uiBinder = GWT
34+
.create(TaskEditorUiBinder.class);
35+
36+
interface TaskEditorUiBinder extends UiBinder<Widget, TaskEditor> {
37+
}
38+
39+
interface EditorDriver extends RequestFactoryEditorDriver<TaskProxy, TaskEditor> {
40+
}
41+
42+
private final EditorDriver editorDriver = GWT.create(EditorDriver.class);
43+
44+
@SuppressWarnings("unchecked")
45+
public TaskEditor() {
46+
initWidget(uiBinder.createAndBindUi(this));
47+
setEditorDriver((RequestFactoryEditorDriver)editorDriver);
48+
}
49+
50+
51+
public TaskEditor(String firstName) {
52+
initWidget(uiBinder.createAndBindUi(this));
53+
}
54+
55+
@Override
56+
public void notifyErrorsCleared() {
57+
clearErrors();
58+
}
59+
60+
@Override
61+
public void notifyEditMode(
62+
com.arm.nimbus.collab.client.sdk.editor.AbstractNimbusEditor.EditorMode editorMode) {
63+
title.setReadOnly(true);
64+
content.setReadOnly(true);
65+
status.setReadOnly(true);
66+
}
67+
68+
@UiHandler("save")
69+
public void save(ClickEvent event){
70+
try {
71+
save();
72+
} catch (Exception e) {
73+
e.printStackTrace();
74+
Window.alert("Erro while saving : " + e.getMessage());
75+
}
76+
}
77+
78+
@UiHandler("remove")
79+
public void remove(ClickEvent event){
80+
81+
}
82+
83+
@Override
84+
public Map<String, Widget> getPathToFieldMap() {
85+
if (pathToFieldMap == null) {
86+
pathToFieldMap = new HashMap<String, Widget>();
87+
pathToFieldMap.put("title", title);
88+
pathToFieldMap.put("content", title);
89+
pathToFieldMap.put("statu", title);
90+
}
91+
return pathToFieldMap;
92+
93+
}
94+
95+
96+
@Override
97+
public InstanceRequest<TaskProxy, TaskProxy> getInstanceRequest()
98+
throws Exception {
99+
TaskRequest requestContext = (TaskRequest) editorDriver.flush();
100+
return requestContext.persist();
101+
}
102+
103+
104+
@Override
105+
public Place getSavePlace(TaskProxy t) throws Exception {
106+
TaskBoardPlace taskBoar = new TaskBoardPlace();
107+
taskBoar.setEntityId(t.getId());
108+
return taskBoar;
109+
}
110+
111+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
2+
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
3+
xmlns:g='urn:import:com.google.gwt.user.client.ui' xmlns:c='urn:import:com.google.gwt.user.cellview.client'
4+
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
5+
<g:HTMLPanel>
6+
<b:Form>
7+
<b:Fieldset>
8+
<b:ControlGroup>
9+
<b:ControlLabel for="title">Title</b:ControlLabel>
10+
<b:Controls>
11+
<b:TextBox ui:field="title"></b:TextBox>
12+
</b:Controls>
13+
</b:ControlGroup>
14+
<b:ControlGroup>
15+
<b:ControlLabel for="content">content</b:ControlLabel>
16+
<b:Controls>
17+
<b:TextBox alternateSize="XLARGE" ui:field="content"></b:TextBox>
18+
<b:HelpBlock>Enter description as HTML ...</b:HelpBlock>
19+
</b:Controls>
20+
</b:ControlGroup>
21+
22+
<b:ControlGroup>
23+
<b:ControlLabel for="status">Status</b:ControlLabel>
24+
<b:Controls>
25+
<b:TextBox ui:field="status"></b:TextBox>
26+
</b:Controls>
27+
</b:ControlGroup>
28+
29+
<b:ButtonGroup>
30+
<b:Button ui:field="save" text="Save"/>
31+
<b:Button ui:field="remove" text="Remove" />
32+
</b:ButtonGroup>
33+
</b:Fieldset>
34+
</b:Form>
35+
</g:HTMLPanel>
36+
</ui:UiBinder>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.arm.nimbus.collab.client.editor;
2+
3+
import com.arm.nimbus.collab.client.model.TaskProxy;
4+
import com.google.gwt.cell.client.AbstractCell;
5+
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
6+
7+
public class TaskTextCell extends AbstractCell<TaskProxy>{
8+
9+
@Override
10+
public void render(Context context, TaskProxy value, SafeHtmlBuilder sb) {
11+
sb.appendEscaped(value.getId() + " - " + value.getTitle());
12+
}
13+
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.arm.nimbus.collab.client.event;
2+
3+
import com.google.gwt.event.shared.GwtEvent;
4+
5+
public class ShowManagerEvent extends GwtEvent<ShowManagerEventHandler> {
6+
public static Type<ShowManagerEventHandler> TYPE = new Type<ShowManagerEventHandler>();
7+
8+
@Override
9+
protected void dispatch(ShowManagerEventHandler handler) {
10+
handler.showProduct(this);
11+
}
12+
13+
@Override
14+
public com.google.gwt.event.shared.GwtEvent.Type<ShowManagerEventHandler> getAssociatedType() {
15+
return TYPE;
16+
}
17+
18+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.arm.nimbus.collab.client.event;
2+
3+
import com.google.gwt.event.shared.EventHandler;
4+
5+
public interface ShowManagerEventHandler extends EventHandler {
6+
void showProduct(ShowManagerEvent showManagerEvent);
7+
}

0 commit comments

Comments
 (0)