Added:
branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DocumentThumbnailsWidget.java
Modified:
branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/screen/UnfiledDocuments.java
branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DjvuViewer.java
Log:
Added Feature #8.
Modified: branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/screen/UnfiledDocuments.java
===================================================================
--- branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/screen/UnfiledDocuments.java 2010-03-11 16:50:01 UTC (rev 5272)
+++ branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/screen/UnfiledDocuments.java 2010-03-11 16:54:12 UTC (rev 5273)
@@ -32,6 +32,7 @@
import java.util.List;
import org.freemedsoftware.gwt.client.CurrentState;
+import org.freemedsoftware.gwt.client.CustomRequestCallback;
import org.freemedsoftware.gwt.client.JsonUtil;
import org.freemedsoftware.gwt.client.ScreenInterface;
import org.freemedsoftware.gwt.client.Util;
@@ -43,6 +44,7 @@
import org.freemedsoftware.gwt.client.widget.CustomDatePicker;
import org.freemedsoftware.gwt.client.widget.CustomTable;
import org.freemedsoftware.gwt.client.widget.DjvuViewer;
+import org.freemedsoftware.gwt.client.widget.DocumentThumbnailsWidget;
import org.freemedsoftware.gwt.client.widget.PatientWidget;
import org.freemedsoftware.gwt.client.widget.SupportModuleWidget;
import org.freemedsoftware.gwt.client.widget.Toaster;
@@ -59,6 +61,8 @@
import com.google.gwt.http.client.Response;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONParser;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.CheckBox;
@@ -103,6 +107,10 @@
protected CheckBox cbRemoveFirstPage;
protected TextBox faxConfirmationNumber;
+
+ protected VerticalPanel batchSplitVp;
+
+ protected HorizontalPanel mainHorizontalPanel;
//Creates only desired amount of instances if we follow this pattern otherwise we have public constructor as well
public static UnfiledDocuments getInstance(){
UnfiledDocuments unfiledDocuments=null;
@@ -121,10 +129,18 @@
}
public UnfiledDocuments() {
- final HorizontalPanel mainHorizontalPanel = new HorizontalPanel();
- initWidget(mainHorizontalPanel);
+ VerticalPanel parentVp=new VerticalPanel();
+ parentVp.setSize("10o%", "100%");
+ initWidget(parentVp);
+ mainHorizontalPanel = new HorizontalPanel();
+ parentVp.add(mainHorizontalPanel);
+
mainHorizontalPanel.setSize("100%", "100%");
-
+
+ batchSplitVp = new VerticalPanel();
+ batchSplitVp.setSize("100%", "100%");
+ batchSplitVp.setVisible(false);
+ parentVp.add(batchSplitVp);
final VerticalPanel verticalPanel = new VerticalPanel();
mainHorizontalPanel.add(verticalPanel);
verticalPanel.setSize("100%", "100%");
@@ -279,7 +295,28 @@
@Override
public void onClick(ClickEvent event) {
if (djvuViewer.getPageCount()>1) {
- //splitBatch();
+
+ final DocumentThumbnailsWidget dtw= new DocumentThumbnailsWidget(djvuViewer,new CustomRequestCallback() {
+ @Override
+ public void onError() {
+
+ }
+ @Override
+ public void jsonifiedData(Object data) {
+ int pNo=new Integer(data.toString());
+ if(pNo==0)
+ {
+ loadData();
+ }
+ else
+ splitBatch(pNo);
+
+ }
+ });
+ batchSplitVp.add(dtw);
+ mainHorizontalPanel.setVisible(false);
+ batchSplitVp.setVisible(true);
+
}
else if (djvuViewer.getPageCount()==1) {
Window.alert("Current document has only one page");
@@ -370,17 +407,12 @@
JSONParser.parse(response.getText()),
"Integer");
if (r != null) {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments",
- "Processed unfiled document.",
- Toaster.TOASTER_INFO);
+ Util.showInfoMsg("UnfiledDocuments",
+ "Processed unfiled document.");
loadData();
}
} else {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments",
- "Failed to file document.",
- Toaster.TOASTER_ERROR);
+ Util.showErrorMsg("UnfiledDocuments","Failed to file document.");
}
}
}
@@ -393,17 +425,12 @@
getModuleProxy().ModuleModifyMethod("UnfiledDocuments", p,
new AsyncCallback<Integer>() {
public void onSuccess(Integer o) {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments",
- "Processed unfiled document.");
+ Util.showInfoMsg("UnfiledDocuments","Processed unfiled document.");
loadData();
}
public void onFailure(Throwable t) {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments",
- "Failed to file document.",
- Toaster.TOASTER_ERROR);
+ Util.showErrorMsg("UnfiledDocuments","Failed to file document.");
GWT.log("Exception", t);
}
});
@@ -415,9 +442,12 @@
*/
@SuppressWarnings("unchecked")
protected void loadData() {
+ batchSplitVp.setVisible(false);
+ batchSplitVp.clear();
djvuViewer.setVisible(false);
flexTable.setVisible(false);
horizontalPanel.setVisible(false);
+ mainHorizontalPanel.setVisible(true);
if (Util.getProgramMode() == ProgramMode.STUBBED) {
List<HashMap<String, String>> results = new ArrayList<HashMap<String, String>>();
{
@@ -517,9 +547,7 @@
try {
builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable ex) {
- CurrentState.getToaster().addItem("UnfiledDocuments",
- "Failed to file document.",
- Toaster.TOASTER_ERROR);
+ Util.showErrorMsg("UnfiledDocuments","Failed to send document to provider.");
}
public void onResponseReceived(Request request,
@@ -530,16 +558,10 @@
JSONParser.parse(response.getText()),
"Integer");
if (r != null) {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments",
- "Sent to provider.",
- Toaster.TOASTER_INFO);
+ Util.showInfoMsg("UnfiledDocuments","Sent to provider.");
}
} else {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments",
- "Failed to file document.",
- Toaster.TOASTER_ERROR);
+ Util.showErrorMsg("UnfiledDocuments","Failed to send document to provider.");
}
}
}
@@ -552,9 +574,7 @@
getModuleProxy().ModuleModifyMethod("UnfiledDocuments", p,
new AsyncCallback<Integer>() {
public void onSuccess(Integer o) {
- CurrentState.getToaster().addItem(
- "UnfiledDocuments", "Sent to provider.",
- Toaster.TOASTER_INFO);
+ Util.showInfoMsg("UnfiledDocuments","Sent to provider.");
}
public void onFailure(Throwable t) {
@@ -564,7 +584,45 @@
}
}
+ public void splitBatch(int pageNo)
+ {
+ if (Util.getProgramMode() == ProgramMode.JSONRPC) {
+ String[] params = { currentId.toString(),pageNo+"" };
+ RequestBuilder builder = new RequestBuilder(
+ RequestBuilder.POST,
+ URL
+ .encode(Util
+ .getJsonRequest(
+ "org.freemedsoftware.module.UnfiledDocuments.batchSplit",
+ params)));
+ try {
+ builder.sendRequest(null, new RequestCallback() {
+ public void onError(
+ com.google.gwt.http.client.Request request,
+ Throwable ex) {
+ }
+
+ @SuppressWarnings("unchecked")
+ public void onResponseReceived(
+ com.google.gwt.http.client.Request request,
+ com.google.gwt.http.client.Response response) {
+ if (200 == response.getStatusCode()) {
+
+ } else {
+ JsonUtil.debug(response.toString());
+ }
+ }
+ });
+ } catch (RequestException e) {
+ JsonUtil.debug(e.toString());
+ }
+
+ } else {
+
+ }
+ }
+
/**
* Perform form validation.
*
Modified: branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DjvuViewer.java
===================================================================
--- branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DjvuViewer.java 2010-03-11 16:50:01 UTC (rev 5272)
+++ branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DjvuViewer.java 2010-03-11 16:54:12 UTC (rev 5273)
@@ -283,7 +283,36 @@
wForwardBottom.setEnabled(true);
}
}
+
+ public Image getPageThumbnail(int pageNumber) throws Exception {
+ Image im=new Image();
+ im.setSize("200px", "282px");
+
+ // Handle all issues ...
+ if (internalId.compareTo(new Integer(0)) == 0) {
+ throw new Exception("Internal id not set");
+ }
+ if (viewerType == 0) {
+ throw new Exception("Document type not set");
+ }
+ if (patientId.compareTo(new Integer(0)) == 0
+ && viewerType == SCANNED_DOCUMENTS) {
+ throw new Exception("Patient id not set");
+ }
+ // Set image URL to the appropriate page
+ if (Util.isStubbedMode()) {
+ JsonUtil.debug("stubbed mode! not loading image");
+ } else {
+ String myUrl = Util.getJsonRequest(resolvePageViewMethod(),
+ new String[] { internalId.toString(),
+ new Integer(pageNumber).toString() });
+ JsonUtil.debug("image URL = " + myUrl);
+ im.setUrl(myUrl);
+ }
+ return im;
+ }
+
protected void pageNext() {
try {
loadPage(currentPage + 1);
Added: branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DocumentThumbnailsWidget.java
===================================================================
--- branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DocumentThumbnailsWidget.java (rev 0)
+++ branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DocumentThumbnailsWidget.java 2010-03-11 16:54:12 UTC (rev 5273)
@@ -0,0 +1,161 @@
+package org.freemedsoftware.gwt.client.widget;
+
+
+import org.freemedsoftware.gwt.client.CustomRequestCallback;
+import org.freemedsoftware.gwt.client.JsonUtil;
+
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Composite;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Image;
+
+public class DocumentThumbnailsWidget extends Composite{
+
+ HorizontalPanel [] thumbnailParentContainer= null;
+ VerticalPanel [] thumbnails;
+ DjvuViewer djviewer = null;
+ int startcount;
+ int endcount;
+ final int PAGES_PER_SCREEN=4;
+ final int ROWS_PER_SCREEN=2;
+ int selectedPage=0;
+ CustomRequestCallback callBack=null;
+ public DocumentThumbnailsWidget(DjvuViewer dv, CustomRequestCallback c) {
+ callBack=c;
+ djviewer=dv;
+ VerticalPanel vPanel=new VerticalPanel();
+ initWidget(vPanel);
+ vPanel.setWidth("100%");
+ vPanel.setVisible(true);
+ vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+ vPanel.setSpacing(10);
+ Label lblHeadingStep2 = new Label("Batch Split");
+ lblHeadingStep2.setStyleName("label");
+ vPanel.add(lblHeadingStep2);
+ Label lbMessage = new Label("Click on the page from where you want to split.");
+ lbMessage.setStyleName("label_italic");
+ vPanel.add(lbMessage);
+ thumbnailParentContainer=new HorizontalPanel[ROWS_PER_SCREEN];
+ for(int i=0;i<thumbnailParentContainer.length;i++){
+ thumbnailParentContainer[i]=new HorizontalPanel();
+ thumbnailParentContainer[i].setSpacing(10);
+ vPanel.add(thumbnailParentContainer[i]);
+ }
+ startcount=0;
+ endcount=0;
+ if(djviewer.getPageCount()>PAGES_PER_SCREEN){
+ endcount=PAGES_PER_SCREEN;
+ }
+ else{
+ endcount=djviewer.getPageCount();
+ }
+ thumbnails=new VerticalPanel[endcount];
+ updateThumbNails();
+ HorizontalPanel hp=new HorizontalPanel();
+ hp.setSpacing(5);
+ if(djviewer.getPageCount()>PAGES_PER_SCREEN){
+ final Button viewPrevios=new Button("Previous");
+ viewPrevios.setEnabled(false);
+ final Button viewNext=new Button("Next");
+
+ viewPrevios.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent arg0) {
+ endcount=startcount;
+ startcount-=PAGES_PER_SCREEN;
+ if(startcount==0){
+ viewPrevios.setEnabled(false);
+ }
+ viewNext.setEnabled(true);
+ updateThumbNails();
+
+ }
+ });
+
+ viewNext.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent arg0) {
+ startcount+=PAGES_PER_SCREEN;
+ if((djviewer.getPageCount()-endcount)>PAGES_PER_SCREEN){
+ endcount+=PAGES_PER_SCREEN;
+ }
+ else{
+ endcount+=(djviewer.getPageCount()-endcount);
+ }
+ if(endcount==(djviewer.getPageCount())){
+ viewNext.setEnabled(false);
+ }
+ viewPrevios.setEnabled(true);
+ updateThumbNails();
+ }
+ });
+
+ hp.add(viewPrevios);
+ hp.add(viewNext);
+
+ }
+ final Button cancelBtn=new Button("Cancel");
+ cancelBtn.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent arg0) {
+ callBack.jsonifiedData(0);
+ }
+ });
+ hp.add(cancelBtn);
+ vPanel.add(hp);
+
+
+ }
+
+
+ public void updateThumbNails(){
+ int counter=0;
+ for(int j=0;j<thumbnailParentContainer.length;j++){
+ thumbnailParentContainer[j].clear();
+ }
+ for(int i=startcount;i<endcount;i++){
+ final int index=i;
+ thumbnails[counter]=new VerticalPanel();
+ int containerIndex=(int)(i/(int)(PAGES_PER_SCREEN/ROWS_PER_SCREEN))%thumbnailParentContainer.length;
+
+ thumbnailParentContainer[containerIndex].add(thumbnails[counter]);
+ try
+ {
+
+ final Image im=djviewer.getPageThumbnail(i+1);
+ im.addClickHandler(new ClickHandler(){
+ public void onClick(ClickEvent e){
+ selectedPage=index+1;
+ callBack.jsonifiedData(selectedPage);
+ }
+ });
+ thumbnails[counter].add(im);
+
+ Label l=new Label("Page "+(i+1));
+ //l.setWidth("auto");
+ l.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
+ thumbnails[counter].add(l);
+ }
+ catch(Exception e){
+ JsonUtil.debug(e.getMessage());
+ }
+ counter++;
+
+ }
+ }
+
+ public int getSelectedPageNumber(){
+ return selectedPage;
+ }
+}
Property changes on: branches/bmas-staging/ui/gwt/src/org/freemedsoftware/gwt/client/widget/DocumentThumbnailsWidget.java
___________________________________________________________________
Added: svn:keywords
+ Id Author Date Revision
Added: svn:eol-style
+ native