From 94df00cc01fa00f25e25cd92eb80abc97aef1cc3 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Thu, 13 Sep 2018 15:56:23 +0000 Subject: [PATCH] integrated CLARIN Switchboard git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@171440 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../workspace/client/ConstantsExplorer.java | 5 +- .../user/workspace/client/MyWindow.java | 23 +++ .../client/constant/WorkspaceOperation.java | 3 +- .../workspace/client/resources/Icons.java | 6 +- .../workspace/client/resources/Resources.java | 10 ++ .../client/resources/icons/CLARIN_SB.png | Bin 0 -> 1694 bytes .../client/resources/icons/THREDDS.png | Bin 0 -> 2247 bytes .../client/resources/icons/thredds.gif | Bin 1068 -> 0 bytes .../client/resources/icons/thredds.png | Bin 749 -> 0 bytes .../client/view/tree/ContextMenuTree.java | 131 ++++++++++++------ 10 files changed, 131 insertions(+), 47 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/MyWindow.java create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/CLARIN_SB.png create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/THREDDS.png delete mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/thredds.gif delete mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/thredds.png diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java b/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java index e0a2a67..f99e22b 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java @@ -15,6 +15,8 @@ import com.google.gwt.i18n.client.NumberFormat; * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it */ public class ConstantsExplorer { + public static final String CLARIN_SWITCHBOARD_ENDPOINT = "https://weblicht.sfs.uni-tuebingen.de/clrs/#/d4science/"; + public static final String PARTHENOS_GATEWAY_HOST_NAME = "parthenos.d4science.org"; // public static final String FILE_SERVICE = GWT.getModuleBaseURL() + "fileservice"; public static final String RPC_WORKSPACE_SERVICE = GWT.getModuleBaseURL() + "rpcWorkspace"; @@ -44,7 +46,8 @@ public class ConstantsExplorer { public static final String MESSAGE_ADD_FOLDER = "New Folder"; public static final String MESSAGE_ADD_SHARED_FOLDER = "New Shared Folder"; public static final String MESSAGE_DATA_CATALOGUE_PUBLISH = "Publish on Catalogue"; - public static final String MESSAGE_THREDDS_PUBLISH = "Sync with Thredds"; + public static final String MESSAGE_THREDDS_PUBLISH = "Sync with THREDDS"; + public static final String MESSAGE_CLARIN_SWITCHBOARD = "Send to Switchboard"; public static final String MESSAGE_ADD = "Add"; public static final String MESSAGE_ADD_FOLDER_IN = "Create a new folder in: "; public static final String MESSAGE_ITEM_NAME = "Item Name"; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/MyWindow.java b/src/main/java/org/gcube/portlets/user/workspace/client/MyWindow.java new file mode 100644 index 0000000..6249597 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/workspace/client/MyWindow.java @@ -0,0 +1,23 @@ +package org.gcube.portlets.user.workspace.client; + +import com.google.gwt.core.client.JavaScriptObject; + +public class MyWindow extends JavaScriptObject { + // All types that extend JavaScriptObject must have a protected, + // no-args constructor. + protected MyWindow() {} + + public final static native MyWindow open(String url, String target, String options) /*-{ + return $wnd.open(url, target, options); + }-*/; + + public final native void close() /*-{ + this.close(); + }-*/; + + public final native void setUrl(String url) /*-{ + if (this.location) { + this.location = url; + } + }-*/; + } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java b/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java index d924774..b5456df 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java @@ -36,7 +36,8 @@ public enum WorkspaceOperation { FOLDER_LINK("FRL", "FRL"), // FOLDER LINK FOLDER_LINK_REMOVE("FPR", "FPR"), VERSIONING("VRN", "VRN"), // VERSIONING - EXECUTE_DM_TASK("EDT", "EDT"); //EXECUTE DM TASK + EXECUTE_DM_TASK("EDT", "EDT"), //EXECUTE DM TASK + SEND_TO_SWITCHBOARD("SDSB", "SDSB"); //SEND_TO_SWITCHBOARD private String id; // ID CONTEXT MENU private String name; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java index eae015d..97ac4b8 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java @@ -4,7 +4,9 @@ import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; public interface Icons extends ClientBundle { - + @Source("icons/CLARIN_SB.png") + ImageResource switchboard(); + @Source("icons/table.png") ImageResource table(); @@ -437,7 +439,7 @@ public interface Icons extends ClientBundle { /** * @return */ - @Source("icons/thredds.gif") + @Source("icons/THREDDS.png") ImageResource thredds(); /** diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java index 2fa6e17..6d64949 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java @@ -90,6 +90,16 @@ public class Resources { return AbstractImagePrototype.create(ICONS.datacataloguepublish()); } + + /** + * Gets the data catalogue publish. + * + * @return the data catalogue publish + */ + public static AbstractImagePrototype getIconSendToSwitchboard(){ + + return AbstractImagePrototype.create(ICONS.switchboard()); + } /** diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/CLARIN_SB.png b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/CLARIN_SB.png new file mode 100644 index 0000000000000000000000000000000000000000..4e10f864f3604588f9af1c2b0ec55ed3c50e70b2 GIT binary patch literal 1694 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&V!3HE>w#^4|BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3*g4)6+?pw7-0Gpi3R$GdIlgb!4&%X;#ZoR3s+rS5|oN?FIIz#Ln;eW z^@CE2^Gl18ff1Lc46>@g%DE^tu_V7JBtJg~7K#BG`6cgeO}d2cGa#^MI+n2$-z@N+o^) z<`yAO7srr_TP;Dp`NH8Mw)xM_{!s3Gd&A+N@7#t4m8=O28#!ig%2svh4q3TsN~(G2 zRaR~l0ioUh7$P=iF4>S48mi@_AQqA&xQkJB3ums!gvnRdz5RH-=eY6Xna4K@XRMfD zb?IyE`(Jm9&+q-tA@YyWE}rF#+yVz-2mg0-zSsTV`PwO=-l{cdbETZL|2waqTR-OK zca$|uyW9GDwm{IYRk6RMq)!)rn4{0K?>FlNMeml~Q|}vjeKPZvU#^~OB9X%w#m{6_ zbx$Ww&#vh@zvKjgSG79FW|Z_SsQ(!A$NY>^Aj_06ryXZQS>9Q-)Xgw-KR(k^X_c(B z!6h{ggM)L_zii$6LhAV^N3BMuTP|v|i)T%&S*G-3MfiH}45`%uF7jKZK7McESns-G zb-CJ^o)V?LlQm+yCc2+pRkyV3sP>=5Z3`EwHokw)C+FDx>x#XrO4!WzpAR`6T)fky z`oPp46?c|}GY_s#uU`@Mk)uaK;7i?v-Cv71wnlC<_L=Z+T3h+{$!R+0COh8mnG)6Q zd3dw-?R}f1wI@6iY}zzuyXwi$I#v7jZ`S*BMy0%A;dgU)d0q*XogWNig_rXfPZOC~ z@1<(|Jt6vaMr8Jjm8_jtkKaDwKh!s<*s>*QLBPCPA+_$yk(VqQtrg+eC5efjPGw;*L(EFoqa;j zY}PB@>TkY2zqugtsem>wX+-qm3#A=DK5S1t zZazz!KY!ut1#FVdQ&MBb@0C9?z8UO$Q literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/THREDDS.png b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/THREDDS.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b81492283e052f4cb77d153d5ff3a5cc728ac6 GIT binary patch literal 2247 zcmaJ@c{o&iA0IT;;{WGJWzz;sxTOZNTOuJU{rU7gv*NsAY=p(B@ok4leP6Iq<~LDZE#`Z*b;9b zTEI+@0qYV1f_VwCJTf2Uz8XnYP?Q290OBGQBB5ALQP5D|bScWc>KKbceuF@s*j*E>9p< z+28PNHiadYLtHTrV9{wPr2jhC)fJCtxO%!W@MJG<0^Y^RiAZ!I z&T;7=Z<`1ZLvvjIKU|-AxvEhRNtB-HfK0F*;QPox5%OEg6v6zlc+ac%oy(s;7W%wg ztTGs^suVaK?!-Sit z{S*=J$5?T!ni?9a2iLuPt|D=Ayru75OLe%Xc)I0=)4%)V4`H)Y(0b)u&ch7FB%Qx%>_dsgaOvU+%I+YsF4AX5==H z3o#D4Z3~gvsN7KtCw-$6c|2kIr9OU(RjOo9bH{G^2|+$i@oKMHdWQxziyxSh;qj`t z;+Bx|Wb*hqH_48!w^i`Rm02?h1cOyce^@s~_bo>7>=69m;N!Tl8y|07I%zPp%xp;U z#xn40cbbjjbh>$`yvd_pVVYZXA+>#KC1jM#ZDc$BOApmx=|u?~&@}Pu@{)A&7v}vM z?&B5Sd|yjC(1a*fqhCzvo;FM+?ow~G%0r+y4e!*ut?nHB2|=vY+Z=zVJ@L8m(SSVt zjI({wWUbAgVjd(PSZVgAEF9Vj|FTHTltsS$Yiy8ULjxx%o3@;{Is1HK?_w?Mj9rIp zT;J<&&AeSyqe->NJjCdToi*UI>Jx{gho{OsY)u>O+{v=4+4jVqnbs2{hg&oH>q3va zy*xkIuwm)q^Uxq0NAq+u1E2D+zK*9s z^+IM($6&g_!`|$hSgf}H(@)%My$I_DKnOOHTSS(DlKg zHb20EO^~1ay}%qnu2S#h{JH&J7kcgKn!o~U|7qCTnzV9X6X7eyq{DcWjq~o&8Ne z)-TBg??Vri>_lh~N!j~-j0@0I-lH7ZCV83rj%bNXlQfI(Y-LQPuE@(StP0E^XjgTj zQw&O9GFoKaxWd<*Xz8{74>l%+0sc%;>*S{QV=;!4EzM}f$U8G|qA7j)t|e_tZYu2M zbF9@N(Qb}zNYM?UTK~bvsRt=X|L{A%pkx2FlX9TC)8aFJ{gsJ+%)k=GmC;*<1&^4+ zl|Qe$z7T!j5I$$4Pdmq?4Q;y*ZCG!S>6{ktwTf&@Q>YJL7`=I&Rnwz+&GK$WW@7Sh znZ27ziaTSD6yY|eWGs2q&2znKV1La`>&TQ5oUjhhy%N6I9XY!)!g-OMdd~|dXIfb1 z7UqWT{X3I%o)jApx35jnI4Le()mt@P? z?o4Kc4G!L&9iue<)l*(u5>-^-D6LseTUszvcr^cdiPhT)zzJ z?m6e{;*ve?{=3JeXXZpxOn*nN4qXZxd8d(+1$PD!(WDAS&xQEGnb_$mYaRDp4UO+F z9(jDRXSu%b@UiBRaW^@C2f_69-owrM?Y&8G{ysgulc8@8!dhFBJ7<2$?5;Pt6ro}7 z=6T~SY4?*v|Hu387(8d@4l{HXu&T`S?I$?3%oiec#67OV_=steF7MO{Eov*e!6!iz zWuBArsCUMlYEs-h@gb`C>(aW}Wtk?miqe9y(AU)i6Wjbek1p>PUiz@IT7-T@3Y|P= zaqoeS0?xwJbUk}KAiYsG+&&OCeVIsFKbWO62H)5P#aMiHxCL|2AZ;yM6JnwIwO}y< K=;dDFd;S9hDxd@a literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/thredds.gif b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/thredds.gif deleted file mode 100644 index 5f39482edf9f0c1bcb659a775855c9c5d4927749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmd_p{ZA8T0KoC%&Co;^)Xgmmnn^Tb;*3A|!luJwv0`jhpxvBXOnGs$;LKEvMlpfz z024()>bqM6O;ku0hPZ5_#nJ-3mhv*%UKtkKUg?X_3bfbW%kx}s@$c~aCw!9c-hJZS zFG@3!OoZx0tUfLrrT?9QdM7P!HgBuauz(x!!cc@Vy4Zu=)QA_1&j3d-v8_^r2NKTN zc=2;;ErQqM)=Y?K1UO_;og?$8m|0M|PiSN=M- zKr#-0L|Kc@H88n-HYU(d$1 zQ}Nex@i58kZ!j9B8R0oS<^iq{Wg@_v`Iv=(jzGfXV{LvYX&5Tgzy*@_hABM2@jQ>b z$E{&flMtj6+4#=j-4jSUk9_m_KAWmGe@(f1pshl2(;!Eag%c|t601_r!13e3Lyh+` zJ{7K8rZyB^7D_BXSG0O`&1tgnrO595v<=zovkqWg^>r;N$J)_+l|q`6_oXkC6BFxH z*(un70yV2eqHo2|2%Tu4J~d@?zfwQgCXjxzdCPf3sH@L-u;lx@L}vZE-*SXeHcT|3MYNe{JbkDlRO_eiAh)$K3bfn;`2x`0{$||0Mr?Sh%X!_v~a}L`K zZS6AUiE&0>Rv=h@G4FwZ=qh=%zBR8ph+x+qfBYn8>FIQ_{)y!FXF?=N|I0@OyE<~K YtpRb}{0CVw!Bd66+)~(?oQ&-FA60S)R{#J2 diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/thredds.png b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/thredds.png deleted file mode 100644 index a0e31c56f6174e494a1d7859b0f538e483216e7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV3Ox)3IElyh_IB8rW7jJ|kJk}I zCD=a2V7wpG&TJ?UuE2`dPlSZS?0H>T0g(*kl2@TxF*MB>3{!_@Zep#tTBwz^N2L2F zbF!i+V$70Nggo5B#ON$Em!jbk{L~|8X#Kb{mc!j^Hy^&R-@NTvA(zXE2{w1%VKR}0 z;yXx~34E;rHR}NG$R`*BD&{bX%gOO4rzYUUN~I#q3OX(nyNW-afuX|@{Hh<}!nB4h zxeP~DanUD8^$kvvvv)O{&5Ha%k>I!;7;XaJlnzWM4s~Y`N$(!4zrWGR?89Rw_XyPM zbuocqI2cPM@x9%I#40oXJa!su$iRht zZX9TjAQC5t4s0-Q_R&0&u(kJNk+5RQ3=Ej_mMqJ0e#g0?x3agfdr*SpRgq8kp+Owb zfZ}{YhT8D3`u^jqXq-GhnV=qv#qMzO*_CD&400000NkvXXu0mjfk%&&Y diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java index d6cb32a..7e7ddb3 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java @@ -6,6 +6,7 @@ import java.util.List; import org.gcube.portlets.user.workspace.client.AppControllerExplorer; import org.gcube.portlets.user.workspace.client.ConstantsExplorer; import org.gcube.portlets.user.workspace.client.ConstantsExplorer.WS_UPLOAD_TYPE; +import org.gcube.portlets.user.workspace.client.MyWindow; import org.gcube.portlets.user.workspace.client.constant.WorkspaceOperation; import org.gcube.portlets.user.workspace.client.event.AccountingHistoryEvent; import org.gcube.portlets.user.workspace.client.event.AccountingReadersEvent; @@ -30,6 +31,7 @@ import org.gcube.portlets.user.workspace.client.event.PasteItemEvent; import org.gcube.portlets.user.workspace.client.event.PublishOnDataCatalogueEvent; import org.gcube.portlets.user.workspace.client.event.RefreshFolderEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEvent; +import org.gcube.portlets.user.workspace.client.event.SessionExpiredEvent; import org.gcube.portlets.user.workspace.client.event.SyncWithThreddsCatalogueEvent; import org.gcube.portlets.user.workspace.client.event.UnShareFolderEvent; import org.gcube.portlets.user.workspace.client.event.VRESettingPermissionEvent; @@ -38,7 +40,11 @@ import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent; import org.gcube.portlets.user.workspace.client.model.FileModel; import org.gcube.portlets.user.workspace.client.resources.Resources; import org.gcube.portlets.user.workspace.client.util.FileModelUtils; +import org.gcube.portlets.user.workspace.client.util.RequestBuilderWorkspaceValidateItem; import org.gcube.portlets.user.workspace.client.view.tree.CutCopyAndPaste.OperationType; +import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert; +import org.gcube.portlets.user.workspace.shared.PublicLink; +import org.gcube.portlets.user.workspace.shared.SessionExpiredException; import org.gcube.portlets.user.workspace.shared.WorkspaceVersioningOperation; import com.extjs.gxt.ui.client.event.MenuEvent; @@ -49,6 +55,8 @@ import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.extjs.gxt.ui.client.widget.menu.SeparatorMenuItem; import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.HandlerManager; +import com.google.gwt.http.client.RequestBuilder; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; /** @@ -65,7 +73,8 @@ public class ContextMenuTree { private MenuItem mnRead = new MenuItem(); private boolean hideSharing = false; - + //tells if you're on PARTHENOS Gateway or not + private boolean showCLARINSwitchBoardOption = false; /** * Instantiates a new context menu tree. */ @@ -73,7 +82,6 @@ public class ContextMenuTree { this.contextMenu.setWidth(200); this.listSelectedItems = new ArrayList(); createContextMenu(); - } @@ -81,6 +89,12 @@ public class ContextMenuTree { * Creates the context menu. */ private void createContextMenu() { + //PARTHENOS GATEWAY CASE Show CLARIN SwitchBoard + if (ConstantsExplorer.PARTHENOS_GATEWAY_HOST_NAME.compareToIgnoreCase(Window.Location.getHostName()) == 0) { + showCLARINSwitchBoardOption = true; + } + + //SPECIFIC OPERATION //Preview Image @@ -313,6 +327,36 @@ public class ContextMenuTree { }); contextMenu.add(createShareFolder); + //Add Url + MenuItem addUrl = new MenuItem(); + addUrl.setId(WorkspaceOperation.ADD_URL.getId()); + addUrl.setText(ConstantsExplorer.MESSAGE_ADD_URL); + addUrl.setIcon(Resources.getIconAddUrl()); + + addUrl.addSelectionListener(new SelectionListener() { + public void componentSelected(MenuEvent ce) { + + FileModel selected = listSelectedItems.get(0); + + FileModel parent = selected.getParentFileModel(); + if(parent==null){ + if(selected.isDirectory()){ + parent = selected; + } + } + //FileModel parent = getDirectoryOrParent(selected); + + if(parent!=null){ + eventBus.fireEvent(new CreateUrlEvent(null, parent)); + } + + } + }); + + contextMenu.add(addUrl); + contextMenu.add(new SeparatorMenuItem()); + + // publish on data catalogue MenuItem publishOnDataCatalogue = new MenuItem(); publishOnDataCatalogue.setId(WorkspaceOperation.PUBLISH_ON_DATA_CATALOGUE.getId()); @@ -349,7 +393,7 @@ public class ContextMenuTree { publishOnThredds.setVisible(false); contextMenu.add(publishOnThredds); - // publish on data catalogue + // executre DM task MenuItem executeDMTask = new MenuItem(); executeDMTask.setId(WorkspaceOperation.EXECUTE_DM_TASK.getId()); executeDMTask.setText(ConstantsExplorer.MESSAGE_EXECUTE_DM_TASK); @@ -367,6 +411,41 @@ public class ContextMenuTree { executeDMTask.setVisible(false); contextMenu.add(executeDMTask); + //send to Switchboard + MenuItem sendToSwitchboard = new MenuItem(); + sendToSwitchboard.setId(WorkspaceOperation.SEND_TO_SWITCHBOARD.getId()); + sendToSwitchboard.setText(ConstantsExplorer.MESSAGE_CLARIN_SWITCHBOARD); + sendToSwitchboard.setIcon(Resources.getIconSendToSwitchboard()); + + sendToSwitchboard.addSelectionListener(new SelectionListener() { + public void componentSelected(MenuEvent ce) { + FileModel sourceFileModel = listSelectedItems.get(0); + if (sourceFileModel != null) { + final MyWindow window = MyWindow.open(null, "_blank", null); + AppControllerExplorer.rpcWorkspaceService.getPublicLinkForFolderItemId(sourceFileModel.getIdentifier(), true, new AsyncCallback() { + @Override + public void onSuccess(PublicLink publicLink) { + String encodedURI = com.google.gwt.http.client.URL.encodeQueryString(publicLink.getCompleteURL()); + //Window.open(ConstantsExplorer.CLARIN_SWITCHBOARD_ENDPOINT+encodedURI,"_blank",""); + window.setUrl(ConstantsExplorer.CLARIN_SWITCHBOARD_ENDPOINT+encodedURI); + } + @Override + public void onFailure(Throwable caught) { + if(caught instanceof SessionExpiredException){ + GWT.log("Session expired"); + AppControllerExplorer.getEventBus().fireEvent(new SessionExpiredEvent()); + return; + } + new MessageBoxAlert("Error", caught.getMessage(), null); + window.close(); + } + }); + } + } + }); + sendToSwitchboard.setVisible(false); + contextMenu.add(sendToSwitchboard); + MenuItem editPermissions = new MenuItem(); editPermissions.setId(WorkspaceOperation.EDIT_PERMISSIONS.getId()); @@ -386,33 +465,6 @@ public class ContextMenuTree { contextMenu.add(editPermissions); - //Add Url - MenuItem addUrl = new MenuItem(); - addUrl.setId(WorkspaceOperation.ADD_URL.getId()); - addUrl.setText(ConstantsExplorer.MESSAGE_ADD_URL); - addUrl.setIcon(Resources.getIconAddUrl()); - - addUrl.addSelectionListener(new SelectionListener() { - public void componentSelected(MenuEvent ce) { - - FileModel selected = listSelectedItems.get(0); - - FileModel parent = selected.getParentFileModel(); - if(parent==null){ - if(selected.isDirectory()){ - parent = selected; - } - } - //FileModel parent = getDirectoryOrParent(selected); - - if(parent!=null){ - eventBus.fireEvent(new CreateUrlEvent(null, parent)); - } - - } - }); - - contextMenu.add(addUrl); contextMenu.add(new SeparatorMenuItem()); MenuItem copy = new MenuItem(); @@ -765,18 +817,6 @@ public class ContextMenuTree { contextMenu.showAt(posX, posY); } - - /** - * Prints the selected. - */ - private void printSelected(){ - - for (FileModel sel: listSelectedItems) { - GWT.log("selected " +sel.getName() ); - } - } - - /** * switch visible operation on context menu according to selected item. * @@ -891,7 +931,12 @@ public class ContextMenuTree { else{ contextMenu.getItemByItemId(WorkspaceOperation.SHOW.getId()).setVisible(true); contextMenu.getItemByItemId(WorkspaceOperation.EXECUTE_DM_TASK.getId()).setVisible(true); - + + /* + * we show the send to CLARIN SwitchBoard if and only if the file is a txt file and showCLARINSwitchBoardOption is true + */ + contextMenu.getItemByItemId(WorkspaceOperation.SEND_TO_SWITCHBOARD.getId()).setVisible(selectedItem.getName().endsWith(".txt") && showCLARINSwitchBoardOption); + switch(selectedItem.getGXTFolderItemType()){ case EXTERNAL_IMAGE: