Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/GWT_Sandbox/Prioritizer/src/org/litesoft/prioritizer/client/ui/views/stories/Stories.java

Diff revisions: vs.
  @@ -1,203 +1,203 @@
1 - package org.litesoft.prioritizer.client.ui.views.stories;
2 -
3 - import org.litesoft.GWT.client.*;
4 - import org.litesoft.GWT.client.view.*;
5 - import org.litesoft.GWT.client.widgets.*;
6 - import org.litesoft.GWT.client.widgets.datatables.*;
7 - import org.litesoft.GWT.forms.client.*;
8 - import org.litesoft.bo.views.*;
9 - import org.litesoft.prioritizer.client.boviews.*;
10 - import org.litesoft.uispecification.*;
11 -
12 - import com.google.gwt.user.client.ui.*;
13 -
14 - import static org.litesoft.uispecification.FormWidgetAspectCtrl.*;
15 - import static org.litesoft.uispecification.FormWidgetCtrl.*;
16 -
17 - public class Stories extends ClickableViewObjectQBEscreenView<StoryView> implements StoryViewNames,
18 - ViewUpdatable<StoryView> {
19 - private ObjectURL mEditing = null;
20 -
21 - @Override
22 - protected UriFragmentIdParams createRefreshParams() {
23 - return StoriesFactory.encodeParams( mEditing );
24 - }
25 -
26 - public Stories( String pSection, ViewDef pViewDef, ObjectURL pEditing ) {
27 - super( title( pSection, pViewDef ), StoryViewDataProvider.getInstance() );
28 -
29 - mEditing = pEditing;
30 -
31 - addStandardTitleBar();
32 -
33 - SizeableQBEboxedPanel zQBEboxedPanel = getQBEboxedPanel();
34 -
35 - FilteringTableModel<StoryView> zFilter = new FilteringTableModel<StoryView>( mDataProvider, true, this, this, true ); // Second 'this' allows "New"
36 - zQBEboxedPanel.setWidget( zFilter.addReloadable( new SingleSelectRegularTable<StoryView>( zFilter, new TableDef(), this ) ) );
37 -
38 - WidgetCtrlMap zWidgetCtrlMap = new WidgetCtrlMap( VISIBLE_BUT_DISABLED );
39 -
40 - zWidgetCtrlMap.add( SEARCH_FILTER.unique(), aName );
41 - zWidgetCtrlMap.add( SEARCH_FILTER, aDescription );
42 - zWidgetCtrlMap.add( Visible( Search ).enable( Search ).searchFilter(), aShowDone );
43 - zWidgetCtrlMap.add( EDIT_ONLY.always(), aIsDone );
44 - zWidgetCtrlMap.add( Visible( Existing ).enable( No ), aChanges, aCreatorFullName, aPriorityToDisplay );
45 -
46 - mFE = new QBE_FormEngine( zWidgetCtrlMap, null, zQBEboxedPanel, zFilter, zFilter );
47 - mFE.setFilterTransformer( new ShowBooleanUpdateFilterTransformer( mFE.getFilterTransformer(), aShowDone, aIsDone, null, false ) );
48 - mFormBinder = new FormBinder<StoryView>( mFE, StoryViewMetaData.getInstance() );
49 -
50 - add( mFE.createSectionTitle( "Story" ) );
51 -
52 - StoryFieldsPanel zStoryFieldsPanel = new StoryFieldsPanel( mFormBinder );
53 -
54 - add( zStoryFieldsPanel );
55 -
56 - mFE.setPointerWidget( zStoryFieldsPanel.getPointerField() );
57 - }
58 -
59 - @Override
60 - public void aboutToShow() {
61 - super.aboutToShow();
62 - ObjectURL zEditing = mEditing;
63 - modeSearch();
64 - if ( zEditing != null ) {
65 - mDataProvider.requestRow( zEditing, new FetchRowDataProviderCallBack<StoryView>() {
66 - @Override
67 - public void success( StoryView pRow ) {
68 - if ( pRow != null ) {
69 - modeEdit( pRow );
70 - }
71 - }
72 -
73 - @Override
74 - public void error( String pError ) {
75 - getStatusMessageSinc().setErrorMessage( pError );
76 - }
77 - } );
78 - }
79 - }
80 -
81 - @Override
82 - protected void justLoaded() {
83 - super.justLoaded();
84 - mFE.setFocus();
85 - }
86 -
87 - @Override
88 - protected void processVO( StoryView pRowValue ) {
89 - if ( pRowValue != null ) {
90 - modeEdit( pRowValue );
91 - } else {
92 - modeNew();
93 - }
94 - }
95 -
96 - @Override
97 - public Widget getBottomBar() {
98 - LeftCenterRightHorizontalPanel zActionPanel = new LeftCenterRightHorizontalPanel();
99 -
100 - zActionPanel.addLeft( mFE.addEditRevertButton( createRevertButton() ) );
101 - zActionPanel.addCenter( mFE.addEditSubmitButton( createSubmitButton( mDataProvider, mFormBinder, this ) ) );
102 - zActionPanel.addRight( mFE.addEditSubmitButton( createSubmitButton( mDataProvider, mFormBinder, ViewDef.HOME ) ) );
103 -
104 - return zActionPanel;
105 - }
106 -
107 - @Override
108 - public void viewUpdated( StoryView pStoryView ) {
109 - modeEdit( pStoryView );
110 - }
111 -
112 - private void modeSearch() {
113 - mEditing = null;
114 - mFE.setMode( FormEngine.Mode.Search );
115 - }
116 -
117 - private void modeEdit( StoryView pStoryView ) {
118 - mEditing = pStoryView.getObjectURL();
119 - mFormBinder.setExistingObject( mDataProvider.copyIntoNewTS( pStoryView ), FormEngine.Mode.EditFromSearch );
120 - }
121 -
122 - private void modeNew() {
123 - mEditing = null;
124 - mFormBinder.setNewObject( StoryView.createNew() );
125 - // mFE.setNamedComponentValueAsStory( aLogonEmail, pLogonEmail );
126 - mFE.setFocus();
127 - }
128 -
129 - private static class TableDef extends BoTableDefinition<StoryView> implements StoryViewNames,
130 - DataTableStyle {
131 - public TableDef() {
132 - StoryViewMetaData zMD = StoryViewMetaData.getInstance();
133 -
134 - addColumn( zMD.getBoAttribute( aName ) ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 20, CELL_PADDING ) );
135 - addColumn( zMD.getBoAttribute( aDescriptionThreeLines ), "Description" ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 40, CELL_PADDING ) );
136 - addColumn( zMD.getBoAttribute( aIsDone ), "Done" ).initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 4, CELL_PADDING ) );
137 - addColumn( zMD.getBoAttribute( aPriorityToDisplay ), "Priority" ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 20, CELL_PADDING ) );
138 - addColumn( zMD.getBoAttribute( aPriorityLastChangedBy ),
139 - "Prioritized By" ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 20, CELL_PADDING ) );
140 - }
141 - }
142 -
143 - private static class StoryFieldsPanel extends SizeableVerticalSplitPairPanel implements StoryViewNames {
144 - private Widget mPointerField;
145 -
146 - public Widget getPointerField() {
147 - return mPointerField;
148 - }
149 -
150 - public StoryFieldsPanel( FormBinder<StoryView> pFB ) {
151 - stretchable();
152 -
153 - add( createUpperWidget( pFB ) );
154 - add( createLowerWidget( pFB ) );
155 - }
156 -
157 - private Widget createUpperWidget( FormBinder<StoryView> pFB ) {
158 - SizeableVerticalPanel zPanel = new SizeableVerticalPanel().stretchable();
159 -
160 - zPanel.add( createNamePlus( pFB ) );
161 - zPanel.add( pFB.add( aDescription ) );
162 -
163 - return zPanel;
164 - }
165 -
166 - private Widget createNamePlus( FormBinder<StoryView> pFB ) {
167 - SizeableHorizontalPanel zPanel = new SizeableHorizontalPanel().stretchableHorizontally();
168 -
169 - zPanel.add( mPointerField = pFB.add( aName ) );
170 - zPanel.add( new SizeableSpacer( 10 ).stretchableHorizontally() );
171 - zPanel.add( createDoneWidget( pFB ) );
172 -
173 - return zPanel;
174 - }
175 -
176 - private Widget createDoneWidget( FormBinder<StoryView> pFB ) {
177 - VerticalPanel zPanel = new VerticalPanel();
178 -
179 - zPanel.add( pFB.add( aShowDone ) );
180 - zPanel.add( pFB.add( aIsDone ) );
181 -
182 - return zPanel;
183 - }
184 -
185 - private Widget createLowerWidget( FormBinder<StoryView> pFB ) {
186 - SizeableVerticalPanel zPanel = new SizeableVerticalPanel().stretchable();
187 -
188 - zPanel.add( pFB.add( aChanges ) );
189 - zPanel.add( createMiscWidget( pFB ) );
190 -
191 - return zPanel;
192 - }
193 -
194 - private Widget createMiscWidget( FormBinder<StoryView> pFB ) {
195 - SizeableHorizontalPanel zPanel = new SizeableHorizontalPanel().stretchableHorizontally();
196 -
197 - zPanel.add( pFB.add( aCreatorFullName, "Created By" ) );
198 - zPanel.add( pFB.add( aPriorityToDisplay, "Priority" ) );
199 -
200 - return zPanel;
201 - }
202 - }
203 - }
1 + package org.litesoft.prioritizer.client.ui.views.stories;
2 +
3 + import org.litesoft.GWT.client.*;
4 + import org.litesoft.GWT.client.view.*;
5 + import org.litesoft.GWT.client.widgets.*;
6 + import org.litesoft.GWT.client.widgets.datatables.*;
7 + import org.litesoft.GWT.forms.client.*;
8 + import org.litesoft.bo.views.*;
9 + import org.litesoft.prioritizer.client.boviews.*;
10 + import org.litesoft.uispecification.*;
11 +
12 + import com.google.gwt.user.client.ui.*;
13 +
14 + import static org.litesoft.uispecification.FormWidgetAspectCtrl.*;
15 + import static org.litesoft.uispecification.FormWidgetCtrl.*;
16 +
17 + public class Stories extends ClickableViewObjectQBEscreenView<StoryView> implements StoryViewNames,
18 + ViewUpdatable<StoryView> {
19 + private ObjectURL mEditing = null;
20 +
21 + @Override
22 + protected UriFragmentIdParams createRefreshParams() {
23 + return StoriesFactory.encodeParams( mEditing );
24 + }
25 +
26 + public Stories( String pSection, ViewDef pViewDef, ObjectURL pEditing ) {
27 + super( title( pSection, pViewDef ), StoryViewDataProvider.getInstance() );
28 +
29 + mEditing = pEditing;
30 +
31 + addStandardTitleBar();
32 +
33 + SizeableQBEboxedPanel zQBEboxedPanel = getQBEboxedPanel();
34 +
35 + FilteringTableModel<StoryView> zFilter = new FilteringTableModel<StoryView>( mDataProvider, true, this, this, true ); // Second 'this' allows "New"
36 + zQBEboxedPanel.setWidget( zFilter.addReloadable( new SingleSelectRegularTable<StoryView>( zFilter, new TableDef(), this ) ) );
37 +
38 + WidgetCtrlMap zWidgetCtrlMap = new WidgetCtrlMap( VISIBLE_BUT_DISABLED );
39 +
40 + zWidgetCtrlMap.add( SEARCH_FILTER.unique(), aName );
41 + zWidgetCtrlMap.add( SEARCH_FILTER, aDescription );
42 + zWidgetCtrlMap.add( Visible( Search ).enable( Search ).searchFilter(), aShowDone );
43 + zWidgetCtrlMap.add( EDIT_ONLY.always(), aIsDone );
44 + zWidgetCtrlMap.add( Visible( Existing ).enable( No ), aChanges, aCreatorFullName, aPriorityToDisplay );
45 +
46 + mFE = new QBE_FormEngine( zWidgetCtrlMap, null, zQBEboxedPanel, zFilter, zFilter );
47 + mFE.setFilterTransformer( new ShowBooleanUpdateFilterTransformer( mFE.getFilterTransformer(), aShowDone, aIsDone, null, false ) );
48 + mFormBinder = new FormBinder<StoryView>( mFE, StoryViewMetaData.getInstance() );
49 +
50 + add( mFE.createSectionTitle( "Story" ) );
51 +
52 + StoryFieldsPanel zStoryFieldsPanel = new StoryFieldsPanel( mFormBinder );
53 +
54 + add( zStoryFieldsPanel );
55 +
56 + mFE.setPointerWidget( zStoryFieldsPanel.getPointerField() );
57 + }
58 +
59 + @Override
60 + public void aboutToShow() {
61 + super.aboutToShow();
62 + ObjectURL zEditing = mEditing;
63 + modeSearch();
64 + if ( zEditing != null ) {
65 + mDataProvider.requestRow( zEditing, new FetchRowDataProviderCallBack<StoryView>() {
66 + @Override
67 + public void success( StoryView pRow ) {
68 + if ( pRow != null ) {
69 + modeEdit( pRow );
70 + }
71 + }
72 +
73 + @Override
74 + public void error( String pError ) {
75 + getStatusMessageSinc().setErrorMessage( pError );
76 + }
77 + } );
78 + }
79 + }
80 +
81 + @Override
82 + protected void justLoaded() {
83 + super.justLoaded();
84 + mFE.setFocus();
85 + }
86 +
87 + @Override
88 + protected void processVO( StoryView pRowValue ) {
89 + if ( pRowValue != null ) {
90 + modeEdit( pRowValue );
91 + } else {
92 + modeNew();
93 + }
94 + }
95 +
96 + @Override
97 + public Widget getBottomBar() {
98 + LeftCenterRightHorizontalPanel zActionPanel = new LeftCenterRightHorizontalPanel();
99 +
100 + zActionPanel.addLeft( mFE.addEditRevertButton( createRevertButton() ) );
101 + zActionPanel.addCenter( mFE.addEditSubmitButton( createSubmitButton( mDataProvider, mFormBinder, this ) ) );
102 + zActionPanel.addRight( mFE.addEditSubmitButton( createSubmitButton( mDataProvider, mFormBinder, ViewDef.HOME ) ) );
103 +
104 + return zActionPanel;
105 + }
106 +
107 + @Override
108 + public void viewUpdated( StoryView pStoryView ) {
109 + modeEdit( pStoryView );
110 + }
111 +
112 + private void modeSearch() {
113 + mEditing = null;
114 + mFE.setMode( FormEngine.Mode.Search );
115 + }
116 +
117 + private void modeEdit( StoryView pStoryView ) {
118 + mEditing = pStoryView.getObjectURL();
119 + mFormBinder.setExistingObject( mDataProvider.copyIntoNewTS( pStoryView ), FormEngine.Mode.EditFromSearch );
120 + }
121 +
122 + private void modeNew() {
123 + mEditing = null;
124 + mFormBinder.setNewObject( StoryView.createNew() );
125 + // mFE.setNamedComponentValueAsStory( aLogonEmail, pLogonEmail );
126 + mFE.setFocus();
127 + }
128 +
129 + private static class TableDef extends BoTableDefinition<StoryView> implements StoryViewNames,
130 + DataTableStyle {
131 + public TableDef() {
132 + StoryViewMetaData zMD = StoryViewMetaData.getInstance();
133 +
134 + addColumn( zMD.getBoAttribute( aName ) ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 20, CELL_PADDING ) );
135 + addColumn( zMD.getBoAttribute( aDescriptionThreeLines ), "Description" ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 40, CELL_PADDING ) );
136 + addColumn( zMD.getBoAttribute( aIsDone ), "Done" ).initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 4, CELL_PADDING ) );
137 + addColumn( zMD.getBoAttribute( aPriorityToDisplay ), "Priority" ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 20, CELL_PADDING ) );
138 + addColumn( zMD.getBoAttribute( aPriorityLastChangedBy ),
139 + "Prioritized By" ); // .initialWidth( FontSizer.get( TABLE_TEXT ).EMsPlus( 20, CELL_PADDING ) );
140 + }
141 + }
142 +
143 + private static class StoryFieldsPanel extends SizeableVerticalSplitPairPanel implements StoryViewNames {
144 + private Widget mPointerField;
145 +
146 + public Widget getPointerField() {
147 + return mPointerField;
148 + }
149 +
150 + public StoryFieldsPanel( FormBinder<StoryView> pFB ) {
151 + stretchable();
152 +
153 + add( createUpperWidget( pFB ) );
154 + add( createLowerWidget( pFB ) );
155 + }
156 +
157 + private Widget createUpperWidget( FormBinder<StoryView> pFB ) {
158 + SizeableVerticalPanel zPanel = new SizeableVerticalPanel().stretchable();
159 +
160 + zPanel.add( createNamePlus( pFB ) );
161 + zPanel.add( pFB.add( aDescription ) );
162 +
163 + return zPanel;
164 + }
165 +
166 + private Widget createNamePlus( FormBinder<StoryView> pFB ) {
167 + SizeableHorizontalPanel zPanel = new SizeableHorizontalPanel().stretchableHorizontally();
168 +
169 + zPanel.add( mPointerField = pFB.add( aName ) );
170 + zPanel.add( new SizeableSpacer( 10 ).stretchableHorizontally() );
171 + zPanel.add( createDoneWidget( pFB ) );
172 +
173 + return zPanel;
174 + }
175 +
176 + private Widget createDoneWidget( FormBinder<StoryView> pFB ) {
177 + VerticalPanel zPanel = new VerticalPanel();
178 +
179 + zPanel.add( pFB.add( aShowDone ) );
180 + zPanel.add( pFB.add( aIsDone ) );
181 +
182 + return zPanel;
183 + }
184 +
185 + private Widget createLowerWidget( FormBinder<StoryView> pFB ) {
186 + SizeableVerticalPanel zPanel = new SizeableVerticalPanel().stretchable();
187 +
188 + zPanel.add( pFB.add( aChanges ) );
189 + zPanel.add( createMiscWidget( pFB ) );
190 +
191 + return zPanel;
192 + }
193 +
194 + private Widget createMiscWidget( FormBinder<StoryView> pFB ) {
195 + SizeableHorizontalPanel zPanel = new SizeableHorizontalPanel().stretchableHorizontally();
196 +
197 + zPanel.add( pFB.add( aCreatorFullName, "Created By" ) );
198 + zPanel.add( pFB.add( aPriorityToDisplay, "Priority" ) );
199 +
200 + return zPanel;
201 + }
202 + }
203 + }