bug fixed: open report and open report template

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@69322 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2013-02-15 11:51:01 +00:00
parent 5d725789a1
commit 3e539fb5ca
8 changed files with 149 additions and 103 deletions

View File

@ -119,6 +119,7 @@ import com.extjs.gxt.ui.client.widget.Info;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HasWidgets;
@ -205,23 +206,6 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
@Override
public void onCreateSharedFolder(CreateSharedFolderEvent createSharedFolderEvent) {
// rpcWorkspaceService.readFromApplicationProfile("aaa", "bbb", new AsyncCallback<Void>() {
//
// @Override
// public void onFailure(Throwable caught) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public void onSuccess(Void result) {
// // TODO Auto-generated method stub
//
// }
// });
final FileModel sourceFileModel = createSharedFolderEvent.getFileSourceModel();
//IF ITEM IS SHAREABLE
@ -1212,28 +1196,51 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
// System.out.println("id " +openReportsEvent.getSourceFileModel().getIdentifier());
// System.out.println("name " +openReportsEvent.getSourceFileModel().getName());
rpcWorkspaceService.setValueInSession(ConstantsExplorer.IDREPORT, openReportsEvent.getSourceFileModel().getIdentifier(), new AsyncCallback<Void>() {
rpcWorkspaceService.getURLFromApplicationProfile(ConstantsExplorer.IDREPORT, openReportsEvent.getSourceFileModel().getIdentifier(), new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
// Log.error("Error setting session attribute idreport",caught);
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " setting session attribute idreport", null);
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting application profile - attribute idreport", null);
}
@Override
public void onSuccess(Void result) {
String currentUrl = portalURL();
int last = currentUrl.lastIndexOf("/");
String reportUrl = currentUrl.substring(0,last+1) + ConstantsExplorer.REPORTGENERATION;
public void onSuccess(String url) {
String reportUrl = url;
// int last = currentUrl.lastIndexOf("/");
// String reportUrl = currentUrl.substring(0,last+1) + ConstantsExplorer.REPORTGENERATION;
// Log.trace("Url: "+reportUrl);
System.out.println("currentUrl " +currentUrl);
// System.out.println("currentUrl " +currentUrl);
System.out.println("reportUrl " +reportUrl);
new WindowOpenUrl(reportUrl, "_self", "");
}
});
// rpcWorkspaceService.setValueInSession(ConstantsExplorer.IDREPORT, openReportsEvent.getSourceFileModel().getIdentifier(), new AsyncCallback<Void>() {
//
// @Override
// public void onFailure(Throwable caught) {
// new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " setting session attribute idreport", null);
//
// }
//
// @Override
// public void onSuccess(Void result) {
// String currentUrl = portalURL();
// int last = currentUrl.lastIndexOf("/");
// String reportUrl = currentUrl.substring(0,last+1) + ConstantsExplorer.REPORTGENERATION;
//// Log.trace("Url: "+reportUrl);
// System.out.println("currentUrl " +currentUrl);
// System.out.println("reportUrl " +reportUrl);
// new WindowOpenUrl(reportUrl, "_self", "");
//
// }
//
// });
}
private void doClickOpenReportTemplate(OpenReportsEvent openReportTemplateEvent) {
@ -1242,28 +1249,50 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
// System.out.println("id " +openReportTemplateEvent.getSourceFileModel().getIdentifier());
// System.out.println("name " +openReportTemplateEvent.getSourceFileModel().getName());
rpcWorkspaceService.setValueInSession(ConstantsExplorer.IDTEMPLATE, openReportTemplateEvent.getSourceFileModel().getIdentifier(), new AsyncCallback<Void>() {
rpcWorkspaceService.getURLFromApplicationProfile(ConstantsExplorer.IDTEMPLATE, openReportTemplateEvent.getSourceFileModel().getIdentifier(), new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
// Log.error("Error setting session attribute idtemplate",caught);
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR +" setting session attribute idtemplate", null);
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting application profile - attribute idreport", null);
}
@Override
public void onSuccess(Void result) {
String currentUrl = portalURL();
int last = currentUrl.lastIndexOf("/");
String templateUrl = currentUrl.substring(0,last+1) + ConstantsExplorer.TEMPLATECREATION;
public void onSuccess(String url) {
String templateUrl = url;
// int last = currentUrl.lastIndexOf("/");
// String templateUrl = currentUrl.substring(0,last+1) + ConstantsExplorer.TEMPLATECREATION;
// Log.trace("Url: "+templateUrl);
System.out.println("currentUrl " +currentUrl);
System.out.println("reportUrl " +templateUrl);
// System.out.println("currentUrl " +currentUrl);
// System.out.println("reportUrl " +templateUrl);
new WindowOpenUrl(templateUrl, "_self", "");
}
});
// rpcWorkspaceService.setValueInSession(ConstantsExplorer.IDTEMPLATE, openReportTemplateEvent.getSourceFileModel().getIdentifier(), new AsyncCallback<Void>() {
//
// @Override
// public void onFailure(Throwable caught) {
//// Log.error("Error setting session attribute idtemplate",caught);
// new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR +" setting session attribute idtemplate", null);
//
// }
//
// @Override
// public void onSuccess(Void result) {
// String currentUrl = portalURL();
// int last = currentUrl.lastIndexOf("/");
// String templateUrl = currentUrl.substring(0,last+1) + ConstantsExplorer.TEMPLATECREATION;
//// Log.trace("Url: "+templateUrl);
// System.out.println("currentUrl " +currentUrl);
// System.out.println("reportUrl " +templateUrl);
// new WindowOpenUrl(templateUrl, "_self", "");
//
// }
//
// });
}
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

After

Width:  |  Height:  |  Size: 315 B

View File

@ -112,7 +112,7 @@ public interface GWTWorkspaceService extends RemoteService{
public List<FileModel> getListParentsByItemIdentifier(String itemIdentifier) throws Exception;
void readFromApplicationProfile(String name, String value) throws Exception;
public String getURLFromApplicationProfile(String name, String value) throws Exception;
// public ArrayList<List<FileModel>> getChildrenListsByParentsIdentifier(String itemIdentifier) throws Exception;

View File

@ -117,8 +117,8 @@ public interface GWTWorkspaceServiceAsync {
void getListParentsByItemIdentifier(String itemIdentifier,
AsyncCallback<List<FileModel>> callback);
void readFromApplicationProfile(String name, String value,
AsyncCallback<Void> callback);
void getURLFromApplicationProfile(String name, String value,
AsyncCallback<String> callback);
// void getListParentsByItemIdentifier(String itemIdentifier,AsyncCallback<ArrayList<String>> callback);

View File

@ -1,8 +1,5 @@
package org.gcube.portlets.user.workspace.server;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
@ -10,9 +7,8 @@ import java.util.List;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContext;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.applicationsupportlayer.social.SocialPortalBridge;
import org.gcube.common.core.scope.GCUBEScope;
import org.gcube.common.core.utils.logging.GCUBEClientLog;
import org.gcube.portlets.user.homelibrary.home.exceptions.HomeNotFoundException;
@ -47,7 +43,6 @@ import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
import org.gcube.portlets.user.workspace.server.notifications.NotificationsProducer;
import org.gcube.portlets.user.workspace.server.util.AllScope;
import org.gcube.portlets.user.workspace.server.util.Util;
import org.gcube.portlets.user.workspace.shared.FieldVerifier;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@ -82,7 +77,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
}
protected boolean isTestMode(){
return Util.isTestMode(Util.getAslSession(this.getThreadLocalRequest().getSession()));
return Util.withoutPortal;
}
@Override
@ -755,43 +750,42 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
}
@Override
public void readFromApplicationProfile(String name, String value) throws Exception {
public String getURLFromApplicationProfile(String property, String value) throws Exception {
String urlPortlet = "";
String appId = "";
try{
ASLSession session = Util.getAslSession(this.getThreadLocalRequest().getSession());
Properties prop = new Properties();
try {
InputStream in = (InputStream) FieldVerifier.class.getResourceAsStream("portletClassName.properties");
// load a properties file from class path, inside static method
prop.load(in);
// get the property value and print it out
System.out.println(prop.getProperty("idreport"));
System.out.println(prop.getProperty("idtemplate"));
InputStream in = (InputStream) GWTWorkspaceServiceImpl.class.getResourceAsStream("portletClassName.properties");
// load a properties file
prop.load(in);
// get the property value - the application Id
appId = prop.getProperty(property);
//print it out
System.out.println(prop.getProperty(property));
//set property in ASL session
setValueInSession(property,value);
} catch (IOException ex) {
ex.printStackTrace();
}
// SocialPortalBridge spb = new SocialPortalBridge(session,)
//
// ASLSession session = Util.getAslSession(this.getThreadLocalRequest().getSession());
// session.setAttribute(name, value);
// workspaceLogger.trace("set value in session with name: "+name+", value: "+value);
// workspaceLogger.debug("WS Session Id = " + session.getExternalSessionID());
//// System.out.println("set value in session with name: "+name+", value: "+value);
SocialPortalBridge spb = new SocialPortalBridge(session,appId);
urlPortlet = spb.getApplicationProfile().getUrl();
} catch (Exception e) {
workspaceLogger.error("setValueInSession", e);
throw new Exception(e.getMessage());
workspaceLogger.error("getURLFromApplicationProfile", e);
throw new Exception("Sorry, an error occurred in retrieve application profile, try again");
}
return urlPortlet;
}
@Override
@ -820,7 +814,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
Workspace workspace = getWorkspace();
GCUBEClientLog logger = new GCUBEClientLog(GWTWorkspaceServiceImpl.class);
logger.info("get all scope");
logger.trace("get all scope");
// WorkspaceItem parent = workspace.getItem(parentFileModel.getIdentifier()); //get item from workspace
// workspace.getAllScope();
@ -849,7 +843,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
Workspace workspace = getWorkspace();
GCUBEClientLog logger = new GCUBEClientLog(GWTWorkspaceServiceImpl.class);
logger.info("get all contacts");
logger.trace("get all contacts");
// WorkspaceItem parent = workspace.getItem(parentFileModel.getIdentifier()); //get item from workspace
// workspace.getAllScope();
@ -858,7 +852,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
if(isTestMode()){
System.out.println("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS");
logger.warn("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS");
List<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
// //TEST USERS
listContactsModel.add(new InfoContactModel("Federico.Test", "Federico.Test", "Federico de Faveri"));
@ -866,6 +860,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
listContactsModel.add(new InfoContactModel("Fabio.Test", "Fabio.Test", "Fabio Sinibaldi"));
listContactsModel.add(new InfoContactModel(Util.TEST_USER, Util.TEST_USER, Util.TEST_USER));
listContactsModel.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante"));
listContactsModel.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa"));
return listContactsModel;
}
@ -1057,8 +1052,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
Workspace workspace = getWorkspace();
GCUBEClientLog logger = new GCUBEClientLog(GWTWorkspaceServiceImpl.class);
List<FolderBulkCreator> listFBC = workspace.getFolderBulkCreatorManager().getActiveFolderBulkCreators();
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();

View File

@ -1,2 +1,28 @@
idtemplate=template
idreport=report
# Property files
#
# author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
# created 02/2013
#
# Property = key value
#
# property - is the type of Folder Item set in HL
# value - (see property (2))
#
REPORT_TEMPLATE = idtemplate
REPORT = idreport
# Property = gCube App URL
#
# property (2) - is the key that must be set in ASL Session with value OID (OID is the "object id" of the object that must be open)
# value - is the AppId the must be read from Application Profile to retrieve the url application (gCube Apps) that must open the object wih OID
# Ex. idtemplate = "12345" - "12345" is the value (OID set in ASL session at run-time) , that must be read from Report Application to
# open directly the object
#
idtemplate=org.gcube.portlets.user.reportgenerator.server.servlet.ReportServiceImpl
idreport=org.gcube.portlets.user.templates.server.TemplateServiceImpl

View File

@ -11,6 +11,7 @@ import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager;
import org.gcube.applicationsupportlayer.social.NotificationsManager;
import org.gcube.common.core.utils.logging.GCUBEClientLog;
import org.gcube.common.core.utils.logging.GCUBELog;
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
import org.gcube.portlets.user.homelibrary.home.HomeLibrary;
import org.gcube.portlets.user.homelibrary.home.exceptions.HomeNotFoundException;
import org.gcube.portlets.user.homelibrary.home.exceptions.InternalErrorException;
@ -26,7 +27,7 @@ import org.gcube.portlets.user.workspace.server.notifications.NotificationsProdu
*/
public class Util {
public static final String USERNAME_ATTRIBUTE = "username";
public static final String USERNAME_ATTRIBUTE = ScopeHelper.USERNAME_ATTRIBUTE;
public static final String FOLDERIMPORTER_ATTRIBUTE = "FOLDER_IMPORTER";
public static final String METADATACONVERTER_ATTRIBUTE = "METADATA_CONVERTER";
public static final String WORKSPACE_EVENT_COLLECTOR_ATTRIBUTE = "EVENT_COLLECTOR";
@ -44,46 +45,42 @@ public class Util {
// public static final String TEST_USER = "federico.defaveri";
// public static final String TEST_USER = "massimiliano.assante";
// public static final String TEST_USER = "pasquale.pagano";
public static final String TEST_USER = "francesco.mangiacrapa";
public static final String TEST_USER_FULL_NAME = "Francesco Mangiacrapa";
public static final String TEST_USER = "test.user";
public static final String TEST_USER_FULL_NAME = "Test User";
public static GCUBEClientLog defaultLogger = new GCUBEClientLog("WorkspacePortlet");
public static boolean withoutPortal = false;
public static ASLSession getAslSession(HttpSession httpSession)
{
String sessionID = httpSession.getId();
String user = (String) httpSession.getAttribute(USERNAME_ATTRIBUTE);
ASLSession session;
if (user == null) {
defaultLogger.error("WORKSPACE PORTLET STARTING IN TEST MODE - NO USER FOUND");
System.out.println("http session id "+sessionID);
//for test only
httpSession.setAttribute(USERNAME_ATTRIBUTE, TEST_USER);
ASLSession session = SessionManager.getInstance().getASLSession(sessionID, TEST_USER);
session.setScope(TEST_SCOPE);
session.setUserAvatarId(TEST_USER + "Avatar");
session.setUserFullName(TEST_USER_FULL_NAME);
// httpSession.setAttribute(USERNAME_ATTRIBUTE, TEST_USER);
session = SessionManager.getInstance().getASLSession(sessionID, TEST_USER);
if(!withoutPortal){ //TEMPORARY SOLUTION
defaultLogger.error("WORKSPACE PORTLET STARTING IN TEST MODE - NO USER FOUND");
session.setScope(TEST_SCOPE);
session.setUserAvatarId(TEST_USER + "Avatar");
session.setUserFullName(TEST_USER_FULL_NAME);
}
session.setAttribute(WS_RUN_IN_TEST_MODE, true);
return session;
withoutPortal = true;
}else{
session = SessionManager.getInstance().getASLSession(sessionID, user);
withoutPortal = false;
}
ASLSession session = SessionManager.getInstance().getASLSession(sessionID, user);
session.setAttribute(WS_RUN_IN_TEST_MODE, false);
return session;
}
public static boolean isTestMode(ASLSession session){
Boolean test = (Boolean) session.getAttribute(WS_RUN_IN_TEST_MODE);
if(test == null || test==true)
return true;
return false;
}
public static Workspace getWorkspace(final HttpSession httpSession) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException
{