diff --git a/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TRShare.java b/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TRShare.java index a2c9e8e..35056ff 100644 --- a/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TRShare.java +++ b/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TRShare.java @@ -7,9 +7,9 @@ import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsLockedException; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; import org.gcube.portlets.user.td.gwtservice.shared.share.Contacts; -import org.gcube.portlets.user.td.gwtservice.shared.share.ShareInfo; +import org.gcube.portlets.user.td.gwtservice.shared.share.ShareTabResource; import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource; -import org.gcube.portlets.user.td.sharewidget.client.util.InfoMessageBox; +import org.gcube.portlets.user.td.sharewidget.client.util.UtilsGXT3; import org.gcube.portlets.user.td.widgetcommonevent.client.event.ChangeTableRequestEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableRequestType; @@ -28,9 +28,6 @@ import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.widget.Dialog; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.web.bindery.event.shared.EventBus; -import com.sencha.gxt.widget.core.client.box.AlertMessageBox; -import com.sencha.gxt.widget.core.client.event.HideEvent; -import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; /** * @@ -43,7 +40,7 @@ public class TRShare { private EventBus eventBus; private TabResource tabResource; - private ShareInfo shareInfo; + private ShareTabResource shareInfo; public TRShare(TRId trId, EventBus eventBus) { this.trId = trId; @@ -53,23 +50,7 @@ public class TRShare { } - /* - * protected void retrieveInfo() { - * TDGWTServiceAsync.INSTANCE.getShareInfo(trId, new - * AsyncCallback() { - * - * public void onFailure(Throwable caught) { if (caught instanceof - * TDGWTSessionExpiredException) { eventBus.fireEvent(new - * SessionExpiredEvent( SessionExpiredType.EXPIREDONSERVER)); } else { - * Log.debug("ShareInfo Error: " + caught.getLocalizedMessage()); - * alert("Error retrienving share info", "Error retrieving share info"); } } - * - * public void onSuccess(ShareInfo result) { shareInfo = result; - * shareWindow(); } - * - * }); } - */ - + public void retrieveInfo() { TDGWTServiceAsync.INSTANCE.getTabResourceInformation(trId, new AsyncCallback() { @@ -88,13 +69,13 @@ public class TRShare { } else { if (caught instanceof TDGWTIsLockedException) { Log.error(caught.getLocalizedMessage()); - alert("Error Locked", + UtilsGXT3.alert("Error Locked", caught.getLocalizedMessage()); } else { Log.error("Error retrienving properties: " + caught.getLocalizedMessage()); - alert("Error", + UtilsGXT3.alert("Error", "Retrieving tabular resource info: " + caught.getLocalizedMessage()); @@ -152,7 +133,7 @@ public class TRShare { cred.isGroup()); listContacts.add(cont); } - shareInfo=new ShareInfo(tabResource,listContacts); + shareInfo=new ShareTabResource(tabResource,listContacts); TDGWTServiceAsync.INSTANCE.setShare(shareInfo, new AsyncCallback() { @@ -164,7 +145,7 @@ public class TRShare { } else { Log.debug("Share Error: " + caught.getLocalizedMessage()); - alert("Error sharing tabular resource", + UtilsGXT3.alert("Error sharing tabular resource", "Error sharing tabular resource: " + caught.getLocalizedMessage()); } @@ -174,7 +155,7 @@ public class TRShare { Log.debug("Tabular Resource Shared: " + shareInfo.getTabResource().getTrId() .toString()); - info("Shared", "Tabular Resource is shared"); + UtilsGXT3.info("Shared", "Tabular Resource is shared"); ChangeTableWhy why = ChangeTableWhy.TABLEUPDATED; ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent( @@ -187,28 +168,6 @@ public class TRShare { } - private void alert(String title, String message) { - final AlertMessageBox d = new AlertMessageBox(title, message); - d.addHideHandler(new HideHandler() { - - public void onHide(HideEvent event) { - - } - }); - d.show(); - - } - - private void info(String title, String message) { - final InfoMessageBox d = new InfoMessageBox(title, message); - d.addHideHandler(new HideHandler() { - - public void onHide(HideEvent event) { - - } - }); - d.show(); - - } + } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TemplateShare.java b/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TemplateShare.java new file mode 100644 index 0000000..975b0ad --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/sharewidget/client/TemplateShare.java @@ -0,0 +1,130 @@ +package org.gcube.portlets.user.td.sharewidget.client; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; +import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; +import org.gcube.portlets.user.td.gwtservice.shared.share.Contacts; +import org.gcube.portlets.user.td.gwtservice.shared.share.ShareTemplate; +import org.gcube.portlets.user.td.gwtservice.shared.template.TemplateData; +import org.gcube.portlets.user.td.sharewidget.client.util.UtilsGXT3; +import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; +import org.gcube.portlets.widgets.workspacesharingwidget.client.WorkspaceSmartSharingController; +import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.SmartShare; +import org.gcube.portlets.widgets.workspacesharingwidget.shared.CredentialModel; +import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel; + +import com.allen_sauer.gwt.log.client.Log; +import com.extjs.gxt.ui.client.event.BaseEvent; +import com.extjs.gxt.ui.client.event.Events; +import com.extjs.gxt.ui.client.event.Listener; +import com.extjs.gxt.ui.client.widget.Dialog; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.web.bindery.event.shared.EventBus; + +/** + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class TemplateShare { + + private EventBus eventBus; + private TemplateData templateData; + private ShareTemplate shareTemplate; + + public TemplateShare(TemplateData templateData, EventBus eventBus) { + this.templateData=templateData; + this.eventBus = eventBus; + + shareWindow(); + } + + + + + /** + * Call Window + */ + protected void shareWindow() { + + FileModel file = new FileModel(String.valueOf(templateData.getId()), templateData.getName(), false); + + List listAlreadySharedContact = new ArrayList(); + for (Contacts contacts : templateData.getContacts()) { + CredentialModel cm = new CredentialModel(null, contacts.getLogin(), + false); + listAlreadySharedContact.add(cm); + } + + WorkspaceSmartSharingController controller = new WorkspaceSmartSharingController( + file, listAlreadySharedContact, false, true); + + final SmartShare sharingWindow = controller.getSharingDialog(); + + sharingWindow.show(); + + sharingWindow.getButtonById(Dialog.OK).addListener(Events.Select, + new Listener() { + + @Override + public void handleEvent(BaseEvent be) { + + if (sharingWindow.isValidForm(true)) { + shareCall(sharingWindow + .getSharedListUsersCredential()); + + } + + } + }); + + } + + protected void shareCall(List credentials) { + ArrayList listContacts = new ArrayList(); + for (CredentialModel cred : credentials) { + Contacts cont = new Contacts(cred.getId(), cred.getLogin(), + cred.isGroup()); + listContacts.add(cont); + } + shareTemplate=new ShareTemplate(templateData,listContacts); + + TDGWTServiceAsync.INSTANCE.setShareTemplate(shareTemplate, + new AsyncCallback() { + + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.debug("Share Error: " + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error sharing template", + "Error sharing template: " + + caught.getLocalizedMessage()); + } + } + + public void onSuccess(Void result) { + Log.debug("Template Shared: " + + shareTemplate.getTemplateData().getId()); + UtilsGXT3.info("Shared", "Template is shared"); + /* + ChangeTableWhy why = ChangeTableWhy.TABLEUPDATED; + ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent( + ChangeTableRequestType.SHARE, trId, why); + eventBus.fireEvent(changeTableRequestEvent);*/ + + } + + }); + + } + + + +} \ No newline at end of file