@ -33,7 +33,6 @@ import org.gcube.portlets.user.reportgenerator.client.events.RemovedUserCommentE
import org.gcube.portlets.user.reportgenerator.client.events.RemovedUserCommentEventHandler ;
import org.gcube.portlets.user.reportgenerator.client.events.SelectedReportEvent ;
import org.gcube.portlets.user.reportgenerator.client.events.SelectedReportEventHandler ;
import org.gcube.portlets.user.reportgenerator.client.model.ExportManifestationType ;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent ;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel ;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateSection ;
@ -52,34 +51,19 @@ import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea ;
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage ;
import org.gcube.portlets.user.reportgenerator.client.toolbar.RichTextToolbar ;
import org.gcube.portlets.user.reportgenerator.client.uibinder.ExportOptions ;
import org.gcube.portlets.user.reportgenerator.shared.ReportImage ;
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo ;
import org.gcube.portlets.user.reportgenerator.shared.UserBean ;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier ;
import org.gcube.portlets.user.reportgenerator.shared.VmeExportResponse ;
import org.gcube.portlets.user.reportgenerator.shared.VmeResponseEntry ;
import org.gcube.portlets.widgets.exporter.client.ReportExporterPopup ;
import org.gcube.portlets.widgets.exporter.client.event.ExportingCompletedEvent ;
import org.gcube.portlets.widgets.exporter.client.event.ExportingCompletedEventHandler ;
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEvent ;
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEventHandler ;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter ;
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEvent ;
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEventHandler ;
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEvent ;
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEventHandler ;
import org.gcube.portlets.widgets.fileupload.client.view.UploadProgressDialog ;
import com.extjs.gxt.ui.client.event.Listener ;
import com.extjs.gxt.ui.client.event.MessageBoxEvent ;
import com.extjs.gxt.ui.client.widget.Dialog ;
import com.extjs.gxt.ui.client.widget.MessageBox ;
import com.google.gwt.core.client.GWT ;
import com.google.gwt.core.client.RunAsyncCallback ;
import com.google.gwt.event.shared.HandlerManager ;
import com.google.gwt.user.client.Command ;
import com.google.gwt.user.client.Timer ;
import com.google.gwt.user.client.Window ;
import com.google.gwt.user.client.rpc.AsyncCallback ;
import com.google.gwt.user.client.ui.HTML ;
@ -113,7 +97,7 @@ public class Presenter {
private final WaitingOperationDialog dlg = new WaitingOperationDialog ( ) ;
private UploadProgressDialog uploadDlg ;
private UserBean currentUser ;
private String currentScope ;
@ -165,55 +149,7 @@ public class Presenter {
private void handleEvents ( ) {
/ * *
* get the uploaded selected file name before submitting it
* /
eventBus . addHandler ( FileUploadSelectedEvent . TYPE , new FileUploadSelectedEventHandler ( ) {
@Override
public void onFileSelected ( FileUploadSelectedEvent event ) {
String fileName = event . getSelectedFileName ( ) ;
GWT . log ( "selected file name: " + fileName ) ;
if ( fileName . endsWith ( ".jpg" ) | | fileName . endsWith ( ".jpeg" ) | | fileName . endsWith ( ".png" )
| | fileName . endsWith ( ".gif" ) | | fileName . endsWith ( ".bmp" ) | | fileName . endsWith ( ".d4sR" ) ) {
try {
uploadDlg . submitForm ( ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
else {
Window . alert ( "File type not allowed" ) ;
uploadDlg . hide ( ) ;
}
}
} ) ;
/ * *
* get the uploaded file result
* /
eventBus . addHandler ( FileUploadCompleteEvent . TYPE , new FileUploadCompleteEventHandler ( ) {
@Override
public void onUploadComplete ( FileUploadCompleteEvent event ) {
//the filename and its path on server are returned to the client
String fileName = event . getUploadedFileInfo ( ) . getFilename ( ) ;
String absolutePathOnServer = event . getUploadedFileInfo ( ) . getAbsolutePath ( ) ;
GWT . log ( fileName + " uploaded on Server here: " + absolutePathOnServer ) ;
reportService . getUploadedImageUrlById ( fileName , absolutePathOnServer , new AsyncCallback < ReportImage > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Window . alert ( "An error occurred in the server: " + caught . getMessage ( ) ) ;
}
@Override
public void onSuccess ( ReportImage result ) {
uploadDlg . showRegisteringResult ( true ) ; //or false if an error occurred
selectedImage . dropImage ( result . getUrl ( ) , result . getId ( ) , result . getWidth ( ) , result . getHeight ( ) ) ;
}
} ) ;
}
} ) ;
eventBus . addHandler ( SelectedReportEvent . TYPE , new SelectedReportEventHandler ( ) {
@Override
public void onReportSelected ( SelectedReportEvent event ) {
@ -235,14 +171,6 @@ public class Presenter {
}
} ) ;
eventBus . addHandler ( ExportingCompletedEvent . TYPE , new ExportingCompletedEventHandler ( ) {
@Override
public void onExportFinished ( ExportingCompletedEvent event ) {
int top = 0 ;
ReportGenerator . get ( ) . getScrollerPanel ( ) . setVerticalScrollPosition ( top ) ;
showExportSaveOptions ( event . getFilePath ( ) , event . getItemName ( ) , event . getType ( ) ) ;
}
} ) ;
eventBus . addHandler ( AddBiblioEvent . TYPE , new AddBiblioEventHandler ( ) {
public void onAddCitation ( AddBiblioEvent event ) {
@ -261,26 +189,6 @@ public class Presenter {
}
} ) ;
eventBus . addHandler ( ReportExporterEvent . TYPE , new ReportExporterEventHandler ( ) {
@Override
public void onCompletedExport ( ReportExporterEvent event ) {
switch ( event . getOperationResult ( ) ) {
case SAVED :
//refreshWorkspace();
break ;
case SAVED_OPEN :
// refreshWorkspace();
toolBoxPanel . showExportedVersion ( event . getItemId ( ) , event . getItemId ( ) ) ;
break ;
default :
break ;
}
}
} ) ;
eventBus . addHandler ( AddCommentEvent . TYPE , new AddCommentEventHandler ( ) {
public void onAddComment ( AddCommentEvent event ) {
model . addCommentToComponent ( event . getSourceComponent ( ) , event . getComment ( ) , event . getAreaHeight ( ) ) ;
@ -343,12 +251,10 @@ public class Presenter {
public void onSuccess ( Model result ) {
if ( isVME ) {
header . setMenuForVME ( ) ;
header . enableExports ( ) ;
}
dlg . hide ( ) ;
if ( result ! = null ) { //there was one report open in session
loadModel ( result , true ) ;
header . enableExports ( ) ;
} else {
commonCommands . newTemplate . execute ( ) ;
}
@ -697,44 +603,7 @@ public class Presenter {
* /
public void generateFiMES ( final TemplateModel model ) {
}
/ * *
*
* @param model .
* @param type .
* /
public void generateManifestation ( final TemplateModel model , final ExportManifestationType type ) {
GWT . runAsync ( ReportExporterPopup . class , new RunAsyncCallback ( ) {
@SuppressWarnings ( "incomplete-switch" )
@Override
public void onSuccess ( ) {
ReportExporterPopup popup = new ReportExporterPopup ( eventBus ) ;
Model reportModel = model . getSerializableModel ( ) ;
switch ( type ) {
case DOCX :
popup . export ( reportModel , TypeExporter . DOCX ) ;
break ;
case HTML :
popup . export ( reportModel , TypeExporter . HTML ) ;
break ;
case PDF :
popup . export ( reportModel , TypeExporter . PDF ) ;
break ;
case XML :
popup . export ( reportModel , TypeExporter . XML ) ;
break ;
}
}
@Override
public void onFailure ( Throwable reason ) {
}
} ) ;
}
public void openAddCitationDialog ( ) {
AddBiblioEntryDialog dlg = new AddBiblioEntryDialog ( eventBus ) ;
dlg . show ( ) ;
@ -1124,23 +993,7 @@ public class Presenter {
public void refreshWorkspace ( ) {
toolBoxPanel . refreshRoot ( ) ;
}
/ * *
* show the upload file popup
* /
public void showUploadImagePopup ( ClientImage selectedImage ) {
uploadDlg = new UploadProgressDialog ( "Upload Image" , eventBus , true ) ;
uploadDlg . center ( ) ;
uploadDlg . show ( ) ;
this . selectedImage = selectedImage ;
}
/ * *
* show the upload file popup
* /
public void showUploadFilePopup ( ) {
uploadDlg = new UploadProgressDialog ( "Upload Report" , eventBus ) ;
uploadDlg . center ( ) ;
uploadDlg . show ( ) ;
}
/ * *
*
* @return the current selected rich text area
@ -1190,46 +1043,7 @@ public class Presenter {
this . exportsPanel = exportsPanel ;
}
/ * *
* when export is done this method is called
* @param filePath
* @param itemName
* @param type
* /
public void showExportSaveOptions ( final String filePath , final String itemName , final TypeExporter type ) {
clearExportPanel ( ) ;
/ *
* I need to save a temp file , in case the user uses the Save & Open .
* Smart popup blockers will allow a popup if it is directly associated to a user ’ s action .
* If it ’ s delayed in anyway , there ’ s a good chance it ’ s going to get blocked . The exported File needs to be there when clicking open .
* /
reportService . save ( filePath , null , "system.tmp" , type , true , new AsyncCallback < String > ( ) {
@Override
public void onSuccess ( String createdItemId ) {
//here i pass the temp createdItemId
showExportPanel ( filePath , itemName , type , createdItemId ) ;
}
@Override
public void onFailure ( Throwable caught ) {
Window . alert ( "Error while trying exporting this report: " + caught . getMessage ( ) ) ;
}
} ) ;
}
public void showExportPanel ( final String filePath , final String itemName , final TypeExporter type , String tempFileId ) {
final ExportOptions exo = new ExportOptions ( this , toolBoxPanel , filePath , itemName , type , reportService , tempFileId ) ;
exportsPanel . add ( exo ) ;
//needed for applying the css3 transition effect
final Timer t = new Timer ( ) {
@Override
public void run ( ) {
exo . getMainPanel ( ) . addStyleName ( "exportPanel-show" ) ;
}
} ;
t . schedule ( 10 ) ;
}
public void clearExportPanel ( ) {
exportsPanel . clear ( ) ;