From 7732e7fcc8fd2ac5f16f615cef89fddb01180818 Mon Sep 17 00:00:00 2001 From: rkv Date: Mon, 3 Dec 2012 11:44:26 +0000 Subject: [PATCH] Scenario view is refreshed now after check in. Labels of activities are fixed. --- .../org/splat/service/ScenarioService.java | 10 +- .../splat/service/ScenarioServiceImpl.java | 71 +++++--- .../Ant_Siman_War_Builder.launch | 3 +- .../Siman/WebContent/jap/splat-launcher.jar | Bin 9951 -> 9980 bytes .../WebContent/jap/splat-signedlauncher.jar | Bin 11677 -> 11702 bytes Workspace/Siman/WebContent/jsp/toolbar.jsp | 170 +++++++++--------- .../src/org/splat/launcher/ToolbarApplet.java | 17 +- .../simer/EditScenarioPropertiesAction.java | 148 +++++++++------ .../src/org/splat/wapp/ContextualMenu.java | 18 +- Workspace/Siman/src/som.properties | 20 +-- Workspace/Siman/src/som_en.properties | 20 +-- 11 files changed, 275 insertions(+), 202 deletions(-) diff --git a/Workspace/Siman-Common/src/org/splat/service/ScenarioService.java b/Workspace/Siman-Common/src/org/splat/service/ScenarioService.java index 9087b19..eb15f86 100644 --- a/Workspace/Siman-Common/src/org/splat/service/ScenarioService.java +++ b/Workspace/Siman-Common/src/org/splat/service/ScenarioService.java @@ -138,10 +138,12 @@ public interface ScenarioService { /** * Check in the scenario. * - * @param aScenario - * the scenario to check in + * @param scenarioId + * the id of the scenario to check in + * @throws InvalidPropertyException + * if the scenario is not found in the database */ - void checkin(Scenario aScenario); + public void checkin(final long scenarioId) throws InvalidPropertyException; /** * Check out the scenario. @@ -168,7 +170,7 @@ public interface ScenarioService { */ public void checkout(final long scenarioId, final String username) throws InvalidPropertyException, NotApplicableException; - + /** * Copy contents from other scenario up to its given step into the given scenario. * diff --git a/Workspace/Siman-Common/src/org/splat/service/ScenarioServiceImpl.java b/Workspace/Siman-Common/src/org/splat/service/ScenarioServiceImpl.java index 98949f1..f66ef9a 100644 --- a/Workspace/Siman-Common/src/org/splat/service/ScenarioServiceImpl.java +++ b/Workspace/Siman-Common/src/org/splat/service/ScenarioServiceImpl.java @@ -357,9 +357,8 @@ public class ScenarioServiceImpl implements ScenarioService { + " is added to the scenario #" + aScenario.getIndex()); } } catch (IOException error) { - LOG.error( - "Unable to index the knowedge element '" + kelm.getIndex() - + "', reason:", error); + LOG.error("Unable to index the knowedge element '" + + kelm.getIndex() + "', reason:", error); kelm = null; } @@ -380,9 +379,8 @@ public class ScenarioServiceImpl implements ScenarioService { getScenarioDAO().update(aScenario); // Update of relational base isOk = true; } catch (Exception error) { - LOG.error( - "Unable to re-index the knowledge element '" - + aScenario.getIndex() + "', reason:", error); + LOG.error("Unable to re-index the knowledge element '" + + aScenario.getIndex() + "', reason:", error); } return isOk; } @@ -584,8 +582,8 @@ public class ScenarioServiceImpl implements ScenarioService { MessageKeyEnum.SCN_000002.toString(), doc.getId()); } if (pub.value() == null) { - throw new MismatchException( - MessageKeyEnum.SCN_000002.toString(), doc.getId()); + throw new MismatchException(MessageKeyEnum.SCN_000002 + .toString(), doc.getId()); } newPub = getStepService().versionDocument(step, pub, dprop); // Remeber the link from the old document to the new document version @@ -612,8 +610,8 @@ public class ScenarioServiceImpl implements ScenarioService { } docname += "_" + i; // The generated new document title - dprop.setDescription("Checked in").setName(docname) - .setFormat(fileFormat); + dprop.setDescription("Checked in").setName(docname).setFormat( + fileFormat); newPub = getStepService().createDocument(step, dprop); // Remeber the new document @@ -628,8 +626,8 @@ public class ScenarioServiceImpl implements ScenarioService { } if (updir.exists()) { if (updir.delete()) { - LOG.info(MessageKeyEnum.SCN_000003.toString(), - updir.getAbsoluteFile(), step.getOwner().getIndex()); + LOG.info(MessageKeyEnum.SCN_000003.toString(), updir + .getAbsoluteFile(), step.getOwner().getIndex()); } else { throw new IOException( "Can't delete the existing destination file to move file from " @@ -671,8 +669,8 @@ public class ScenarioServiceImpl implements ScenarioService { } while ((step == null) && (i < steps.length)); if (step == null) { - throw new InvalidPropertyException( - MessageKeyEnum.SCN_000001.toString(), stepDTO.getNumber()); + throw new InvalidPropertyException(MessageKeyEnum.SCN_000001 + .toString(), stepDTO.getNumber()); } return step; } @@ -680,12 +678,29 @@ public class ScenarioServiceImpl implements ScenarioService { /** * {@inheritDoc} * - * @see org.splat.service.ScenarioService#checkin(org.splat.dal.bo.som.Scenario) + * @see org.splat.service.ScenarioService#checkin(long) + */ + @Transactional + public void checkin(final long scenarioId) throws InvalidPropertyException { + Scenario aScenario = getScenarioDAO().get(scenarioId); + if (aScenario == null) { + // Scenario not found + throw new InvalidPropertyException(MessageKeyEnum.SCN_000006 + .toString(), scenarioId); + } + checkin(aScenario); + } + + /** + * Mark the scenario as checked in. + * + * @param aScenario + * the scenario to check in. */ - public void checkin(final Scenario aScenario) { + private void checkin(final Scenario aScenario) { aScenario.setUser(null); aScenario.setLastModificationDate(Calendar.getInstance().getTime()); - getScenarioDAO().update(aScenario); + // getScenarioDAO().update(aScenario); } /** @@ -722,30 +737,30 @@ public class ScenarioServiceImpl implements ScenarioService { User aUser = getUserService().selectUser(username); if (aUser == null) { // User not found - throw new InvalidPropertyException( - MessageKeyEnum.USR_000001.toString(), username); + throw new InvalidPropertyException(MessageKeyEnum.USR_000001 + .toString(), username); } Scenario aScenario = getScenarioDAO().get(scenarioId); if (aScenario == null) { // Scenario not found - throw new InvalidPropertyException( - MessageKeyEnum.SCN_000006.toString(), scenarioId); + throw new InvalidPropertyException(MessageKeyEnum.SCN_000006 + .toString(), scenarioId); } boolean res = getStudyService().isStaffedBy(aScenario.getOwnerStudy(), aUser); if (res) { if (aScenario.isCheckedout() && (!aScenario.getUser().getUsername().equals(username))) { - throw new NotApplicableException( - MessageKeyEnum.SCN_000008.toString(), scenarioId, - aScenario.getUser().getUsername()); + throw new NotApplicableException(MessageKeyEnum.SCN_000008 + .toString(), scenarioId, aScenario.getUser() + .getUsername()); } aScenario.setUser(aUser); aScenario.setLastModificationDate(Calendar.getInstance().getTime()); } else { // User doesn't participate in the scenario - throw new NotApplicableException( - MessageKeyEnum.SCN_000007.toString(), username, scenarioId); + throw new NotApplicableException(MessageKeyEnum.SCN_000007 + .toString(), username, scenarioId); } } @@ -855,8 +870,8 @@ public class ScenarioServiceImpl implements ScenarioService { User admin = getUserDAO().getFilteredList( Restrictions.eq("role", adminRole), Order.asc("rid")).get(0); // First sysadmin in the database - kprop.setType(ucase).setTitle(aStudy.getTitle()) - .setValue(scenario.getTitle()).setAuthor(admin); // Internal Knowledge Element required by the validation process of + kprop.setType(ucase).setTitle(aStudy.getTitle()).setValue( + scenario.getTitle()).setAuthor(admin); // Internal Knowledge Element required by the validation process of // knowledges addKnowledgeElement(scenario, kprop); return scenario; diff --git a/Workspace/Siman/.externalToolBuilders/Ant_Siman_War_Builder.launch b/Workspace/Siman/.externalToolBuilders/Ant_Siman_War_Builder.launch index 00f4d15..2bf33ed 100644 --- a/Workspace/Siman/.externalToolBuilders/Ant_Siman_War_Builder.launch +++ b/Workspace/Siman/.externalToolBuilders/Ant_Siman_War_Builder.launch @@ -14,9 +14,10 @@ - + + diff --git a/Workspace/Siman/WebContent/jap/splat-launcher.jar b/Workspace/Siman/WebContent/jap/splat-launcher.jar index afb3cbf4013dbc4e5f1dea8ff6d86a1f9110d05d..a2ece4ea18727c9ead0ffdb6d2b5a34bf7cd3c4c 100644 GIT binary patch delta 4548 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 CXq}?~ diff --git a/Workspace/Siman/WebContent/jap/splat-signedlauncher.jar b/Workspace/Siman/WebContent/jap/splat-signedlauncher.jar index bfb539491a9dd52b8d646f820bde9fdb9b418d65..cd45d583e517c0cd40b7f95ebacc0a5c1f84399f 100644 GIT binary patch delta 5846 zcmZ9QbyQSc+s5fm8M+$=1O%iJQ9(j#VCYUMK|*4XLntUR)F9H`-3%aI(%lV?bcu9* z>hry8J@0$YI{RLG@9SLWUgz3>{Zfo-jfgZ=F|j~sc)xFu2Vw-BKAM{t(9m8JqUk+lT_Q{We_3XPS^tO*10?%c1o|M)JOgSW!(lDM%d0=IM4=%>uVb?R9!hhjKL zzi4TJFwQe`}4lfjIv&9HB@FQ)q^GnoLCnm zH$2{B6@$Z|(pgF>^D10q)gjrUYL`Q*t!a@%VnNU#^PGaBtgHP=lKWV~7p~1-}1*4;(jbfmo{ZCFjfLdgtCMe{L>lT;Fq&guz z-}7;dz~gc}HsZ`TGosWo3#Ngv-kb8^mS*)vhqZz1Mz0f@jpVakyj&$P$t60HC46qq z+L{Qru{B|nsf{I@iCv|zB~WuQItKAXnXEQ0K^H|oWXFEvyAP{TNh*)JZ&-l_(2~S4 zM7=}op9+ouJ<&&24x0hhk^<;;OmZUZx+sKL`Qem1!@>NtON@Ha`ydwAU!d3&$_k5=)vO5VUxN-cbz}0m! z9Lmsoty9(}6QvrtEYFNDTVckA{o>vCo6wZ6dvmz~fO_jeBIE;AeHe*7V^yY~Z`2R) zQQqQL{4@f8G!nbE5bbWQB{1(xgfE>TnkQ`v_y6FUyY8 zy5H`I-JXRGL8HWauaT}AWAT;5$bmB%fVM*JaQRPk+(I+;3BRMe`k&~kN-{ZH5rH?|3m*Nh&2+b`)0Ed2z`%4(R_rzlJbE|;jRZ7Aqg z(cR2c|D5vyn$z~Z5AQ+)wlLN?8xgOb;Y#bE|2|c?cptljlT&`TIgRASjx*~PFDmGB?m9Sd&A-AOKc4P9*Xq}?8pqaCA?=m@Z&73Z2yEjgUH z=-X|Bpc^Tt5;n8tdr1QV8|}=x#m{5i?W!0QVCC9P_HKc z9Fq!1Nj@cYEN8LzH=?qtHT;M&XCr~AVf-*7%h6|J;at-RtFfq3L}M8 zCjZ$sC2=Q_>Lf$02@=VO2tx0EhQp05O zrTjPiVy+l*c)zR%5PZx5;FdEhweoe-%sMFXqu!4IExfSCk@Mv7m6e(ts6#^y^) z7a>rsXf;_<=%Ix>I3ZlYvl`NPc^T4~t642y@D*a>_BnlDBt_caplyRFIp|H;I`$mf z53)t6mdnQ*%#dui;-=7;#0tauOl{XEp7Whs!JOaE;#PDpO;}(AgXj%~xxU5_Res@n zpJMXs^CC&X0Pz%^e&|V1?}AM9V3pf5)VlQW^avjhvr&yO6WvSky67C!pCW{F#Y8X%1Nbm!Bc$u4o3Bbd1ZN3Wlf$6q*n4w)Zce2Cza`xEUH?|o*dNr^^^Qk zF_j0ifPdt!ebw&`L~>Y!gbt7kd;k+XIQ6-7_UE~|L|6x1gznd%;8<^RK$|&WHb(oP8~7vGZBK0NF|}YksTsGY-$P-a9B6wDE;As29MJ; z8*IkMW)3UDlpl4zLFbAp_=t=Px?=;FM20kMc8iFOgB|VBH)?~dex`FVZ_$J~Q_@o3 zO``Ij3NaA8g4iBDv&7{6{8~o&%8yZ;Pmcq^4w&wC-luEsCK5j4!K_=`!4TB8lS$BL zhP27Kj4Y*>x;F-zAcHM=mXr+#8k8ORCW{$VrRr&AMbwH+0<1h2)KHg~yk6rRyWMr7 zeh3Mf?*f?1-N4A*$JLoQRE0U%a(+D@V8-d)gwYn!eDw7D(pxOg*rIQ+>W@jfa#cMC z*g`oyNYs_^X_+_F@a?yo`MZs4bb6RBB~!!RB(3UqLfn9t=7LOX1UtL21uSOK8pX~X z&xvFTAy&%mODXpyJ!I5fCXI}oeKcsiAr}gE4%JPWR%wZ^WJ{nuB0=lADPwc<(@V2s z6HC*h6P1O|o;%(9LzJ>RNezbLweJRjXYDFZI^9Ir&h1=c+vgQ%QmJ+;v+*>w?W^!@ zVfx?-rOt2??<0z9osLi6{h7i_NfmG{jqaIDk#)HFB?YFf%6-P?cW)J_(|L380y$(i z^QHS?CC-!HVnr!`bqAv(Z+=ri*V5XcQ-y=3{EL*zU=K{z;>&C z-Ph`P{&1_4?|sY#zQoxtKi?ZgP0fd@J@n7WlEm%raKM><=P*n_6J@~b6Qz&~9`(5X zI0K0#6rD-GstT;DinfIE%M0GUAH#6iHo-ht1yTwgR(OwEalrkkPx$K#>(OLSJhaJM`U%ZOq5Pd1dk(39rVSsl_;n7 z%_S6#`Z!WeQJ*b&C$rz(GM;JaffKD!4oV5GOr8|Vb!ujCZX6 zA<@{dd2nROw6*_KH35H$6-5Jox@u#-)5j({IlXrcQ+rm7>J$0X zxcr#qr=t3!gAIo`gj~C&YtML?K7pHcork`T7e4t|_>$k?p*itSKwex^Bd8zpR2?GU zpoB`*^@N$I53vh6yv6Yu3$Xf>tzh`jAoaeT_ax=B5LP}-C%r+3A0|I&ETArQ_PAsD{<>7IX4asez@Ly{Qv#pO!lC*<^brR-s2=3YX4UjIv+7IxLg(*^m_Lt<_wK|hHHm7 z>Ead$Els3-c(1M8Pl61mGJ;mK%oi3NYl@g9kD!d*L|zehmvokoo%=l%Ae$dbA9Tr0sEF;>aEZcs^Yfw-mbEb)_?S#HHXQz;XZF4vkqPPR-rUy5t0&=#(JOI zyF5Q7g|bmBQ3)O{^u-XfM5}qsdpY@~8y|U3jO$k*vmB=CSq~?FY-V=?(LxsMds1>_xCs?qO*Ta+?!Fw&5j2$1=F&h&3lEQXZTjm64wS9lHSU7TonV1+qcE7%ts90+DI z$x>6Q*t~bVOrYG~vJ3Ir(>QuJ?rZXSobY)CzzQFpJ|B?9%Ox+YXO0%V*N6AMmRvV0 zIj!e-o6vi->+30g_5Qtq$7qD3AGBTBUht!Kt~fZ#iM~`d;c%~Wi5^W>VVzk@GCko- zZ6}b4{9OA0moeBTe5+ezCa6R-ZwNZ?N;D|Pc(%%LO5n5fbX!jZ>Aj7){YALc?1RO` zIFQDay3{4|Y0DYmD_W6v{L3==)A8ocG4ES2!I`!}B+e*}@CEKU-Ujs{QgBU`7R~Q7 zZv8BitRS3_`S~%4PT`W(%l&+{^_aHXd3>xRy@FMxSR?UoioKkGhgNYPVOA2n?F{HY!$cOTxs zrBBh0pLkA%74G$~9cS2UdBF#sc?YGqNAM@R0z4(hiyd1jLfd}J71JfUJX$L+)?qML z=26H-fQ{$gBZdsFon(t;QVG+fgnn-0{WG}RL9nz?LGBw6=|P-{XLHZkdGy;kZD4md zs>u1pBUyiyRuoKZMK{Y|??>`RGHnZt)KuT(OcYESe^Z8EMMyffd?x&5pg(If*gGe{ zLA|o50cYqsqwiav( zyryG@hheE)bK1X_4I#wHDa^Z2J+nxRfeM&%7R1&KgB_SNY$8TPvgVi`TpJqt?Ra(2 zyOI|QqaJ1ErLW`%NeVy2ob^&NFb^1^@8)<%Bg)R<1={;S-pS4YKW44Q2B;BHdI-fv zym1$bm}QGAG&{xKMDA}%b~BH9PO)p{I^KKJ&L80jtbKBpUb4IroA=^Hl_8%QBXz=N z)w^xnL`$QjjCp(3!3N<)IpouQZpPepD>$_6@Oy1)m5k#351m|ENoKpMuY_JjzePe* zZLS!YcLmqPd_L|KAx)M#0mh%)3%o#^3AR8xK-UZv!aW1&tS<#g`Az4p$`Y|ztH*_4 zpSZnCA<}V?f?-!{IfsOhmR}cC+e?5gBx7X7Pi`6qqQKtyCoo~{_w?I0^a(lb@RB2~ zYF+XZ_^NHhgAP`ns(Pz?o@Tw$)E((RRIMWzI#hl^2M`VkpYAyTa@r2ay4cGGo74&0 z&ERh(6JnPh6XChYBTt|I@kNDYqrIx*K^{KyotP`)1tbTdYsUUq=u{J2L zm2NzhFQh48(rhCAGCVIr8;C?$C|&xVh0X4G<#9@YgR_J|haiEm zcsUe5CA#gUC-WBdY@l$9seoNoqtZNlYyhL>_Sfw+R1VO}*lWdr4BZI5Ii&(CAQqcS zeHQI!D<9FvyqtEAukXR2c;f$-IpTC@h;^eNQZO|kZqH`p3p59{R%!5tV#G1N9o4z0 z4_SW}&`&u!Np3Jd(=63#Jf5{qyS*{+ndP3SjCzBdJeG{IicHr}l(KE|+kspS5tm1* z+j5b_9PWUee~{pc!o9ORB%xrmRGI6BAaWaed&7AgO6S|vh(8xp?QbmlDG%`KH1Z6uAd56 zz<68C+HOzI^LDN8sQh@m)+v0j()x~P1k1{AD767(=7}P1kAY#oqg#%eqnc@4k&|JW z1+9OL+77W>hB5nejOoET%#D$EBX`LRv4bkg_I!XjMC``y#nkQUfiO`>cCmZ2Zlx2W z^V~m(RYA~xcKBRBwqHD=qIBeZuA*1GYn@==^})vKK7P?-Jy1Tb3kk2w4^HS!g~?m1 zMhSyY$uj0GUFcWSXW#a$0){w#9L1a{`O-lMzQkJKV7|IPk5k+8+9~?nsZs591YMB| z)p&c~E4F1#H|w)I%s)g#jF^_Zj0_FUf$87e?KkDnW81*^LpvUG#$(}wJc8x_5<0{x zuO!Q#*}tI==r2Y2&(MXASV5;kXo89U3jd88LbDgHe{JHbI@ z5K|(2_=x@r-93bU@c)KX1HT`^{}OWH{uLVGGVuNR6bS7fMEuA7k)f>_fQ5#pjE9EC z`Cl)UA<+3n{~FWOd%lhQjgx$Tx6A%tnn2>;#+(RW{(n07_n+qaFQElFB9NR1F~m>w n2P-Y`GhkS={q2eLzQCUqx%&(lYMlSSLW&5yPlbcx{p0X|Zkf)4 delta 5852 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 -<%@ page import="org.splat.som.StepRights"%> -<%@ page import="org.splat.simer.OpenStudy"%> -<%@ page import="org.splat.simer.Action"%> -<%@ page import="org.splat.wapp.ToolBar"%> -<%@ page import="org.splat.wapp.ToolButton"%> -<%@ page import="java.util.Iterator"%> -<%@page import="com.opensymphony.xwork2.ActionContext"%> -<%@ - taglib prefix="s" uri="/struts-tags" -%> + pageEncoding="ISO-8859-1"%> +<%@ taglib prefix="s" uri="/struts-tags"%> - configuration + configuration - - - + + + - - - - - - - + + <%-- URL for refreshing scenario view after checkin --%> + + + + + + - if (study.getSelectedStepRights().canCreateDocument() && mbar != null) { -%> - height=<%=mbar.getHeight()%>> -<% Iterator item = mbar.asList().iterator(); - for (int i=0; item.hasNext(); i++) { - ToolButton tool = item.next(); - String arg = tool.getArgument(); -%> - -<% - if ("runSalome".equals(tool.getAction())) { - // --siman --siman-study=s --siman-scenario=sc --siman-user=u -k - arg = "--siman --siman-study=" + study.getIndex() - + " --siman-scenario=" + study.getSelectedScenarioId() - + " --siman-user=" + anAction.getConnectedUser().getUsername() - + " -k"; - } - if (arg != null) { -%> -<% } - } -%> -<% } -%> + + + - - - - - - - - - - - - - - + + + +
- - " border="none" title="" /> - - - " border="none" title="" /> - - - - " border="none" title=""/> - - - " border="none" title="" /> - +
- " border="none" /> -<% OpenStudy study = (OpenStudy)session.getAttribute("study.open"); - ToolBar mbar = study.getModuleBar(); - Action anAction = (Action)ActionContext.getContext().getActionInvocation().getAction(); + + + + " border="none" + title="" /> + + + + " border="none" + title="" /> + + + + " border="none" + title="" /> + + + " + border="none" title="" /> + " border="none" /> + + + height=> <%-- Generate applet parameters for each tool button --%> + + + " + value="" /> + " + value="" /> + + <%-- + --siman --siman-study=s --siman-scenario=sc --siman-user=u -k + --%> + --siman --siman-study= --siman-scenario= --siman-user= -k + + + " + value="" /> + + + "> + + + " border="none" + title="" /> + + " border="none" + title="" /> + - " border="none" title="" /> - - " border="none" title="" /> - - " border="none" title="" /> -
+ " border="none" + title="" /> +
\ No newline at end of file diff --git a/Workspace/Siman/src/org/splat/launcher/ToolbarApplet.java b/Workspace/Siman/src/org/splat/launcher/ToolbarApplet.java index 0de0756..6c02458 100644 --- a/Workspace/Siman/src/org/splat/launcher/ToolbarApplet.java +++ b/Workspace/Siman/src/org/splat/launcher/ToolbarApplet.java @@ -200,6 +200,7 @@ public class ToolbarApplet extends java.applet.Applet implements ActionListener } String pathToScript = SALOME_HOME + "runSalome"; + // Look for the launching script in the file system File script = new File(pathToScript); if (!script.exists()) { script = new File(pathToScript + ".bat"); @@ -210,7 +211,7 @@ public class ToolbarApplet extends java.applet.Applet implements ActionListener if (script.exists()) { - // Checkout the scenario + // Call to the Siman server to checkout the scenario URL checkoutUrl = new URL(getCodeBase().toString() + "checkout.action?" + params.replaceAll("siman-", "").replaceAll("--", "-") @@ -218,6 +219,8 @@ public class ToolbarApplet extends java.applet.Applet implements ActionListener BufferedReader buffer = new BufferedReader(new InputStreamReader( checkoutUrl.openStream())); + + // Read the response of the Siman server boolean isOk = false; String response = buffer.readLine(); while ((response != null)) { @@ -234,19 +237,19 @@ public class ToolbarApplet extends java.applet.Applet implements ActionListener // filename here indeed a string containing parameters for runSalome. Runtime.getRuntime().exec( new String[] { script.getAbsolutePath(), params }); + // Refresh the current scenario view + getAppletContext().showDocument(new URL(this.getParameter("refresh"))); } else { // Checkout of the scenario is failed at the beginning. if (response != null) { - response = response - .substring( - response.indexOf(CHECKOUT_RES) - + CHECKOUT_RES.length()) - .replace('}', ' ').replace('"', ' '); + response = response.substring( + response.indexOf(CHECKOUT_RES) + + CHECKOUT_RES.length()).replace('}', ' ') + .replace('"', ' '); } showError(response); } } else { - // TODO: Use logger to be more user friendly showError("SALOME module is not found: " + script.getAbsolutePath()); throw new ConfigurationException("SALOME module is not found: " + script.getAbsolutePath()); diff --git a/Workspace/Siman/src/org/splat/simer/EditScenarioPropertiesAction.java b/Workspace/Siman/src/org/splat/simer/EditScenarioPropertiesAction.java index 501a3c5..e2094b9 100644 --- a/Workspace/Siman/src/org/splat/simer/EditScenarioPropertiesAction.java +++ b/Workspace/Siman/src/org/splat/simer/EditScenarioPropertiesAction.java @@ -5,55 +5,52 @@ import java.util.ResourceBundle; import org.splat.dal.bo.kernel.User; import org.splat.dal.bo.som.Scenario; +import org.splat.kernel.InvalidPropertyException; import org.splat.service.ProjectElementService; import org.splat.service.ScenarioService; import org.splat.som.Step; import org.splat.som.StepRights; +import org.splat.wapp.Constants; public class EditScenarioPropertiesAction extends DisplayStudyStepAction { private Scenario myscenario; private String lasdate; private String subject; - + /** * The Scenario service. */ private ScenarioService _scenarioService; - + /** * The PojectElement service. */ private ProjectElementService _projectElementService; - + /** - * Value of the menu property. - * It can be: none, create, open, study, knowledge, sysadmin, help. + * Value of the menu property. It can be: none, create, open, study, knowledge, sysadmin, help. */ private String _menuProperty; - + /** - * Value of the title bar property. - * It can be: study, knowledge. + * Value of the title bar property. It can be: study, knowledge. */ private String _titleProperty; - + /** - * Property that indicates whether the current open study is editable or not. - * On the screen it looks like pen on the status icon, pop-up menu also can be called. - * It is necessary for correct building the title bar. + * Property that indicates whether the current open study is editable or not. On the screen it looks like pen on the status icon, pop-up + * menu also can be called. It is necessary for correct building the title bar. */ private String _editDisabledProperty = "false"; - + /** - * Value of the tool bar property. - * It can be: none, standard, study, back. + * Value of the tool bar property. It can be: none, standard, study, back. */ private String _toolProperty; - + /** - * Value of the left menu property. - * It can be: open, study, knowledge, scenario. + * Value of the left menu property. It can be: open, study, knowledge, scenario. */ private String _leftMenuProperty; @@ -72,8 +69,8 @@ public class EditScenarioPropertiesAction extends DisplayStudyStepAction { getApplicationSettings().getCurrentLocale()); ResourceBundle custom = ResourceBundle.getBundle("som", getApplicationSettings().getCurrentLocale()); - SimpleDateFormat datstring = new SimpleDateFormat( - custom.getString("date.format")); // Locale date display format + SimpleDateFormat datstring = new SimpleDateFormat(custom + .getString("date.format")); // Locale date display format Step step; _openStudy = getOpenStudy(); @@ -81,18 +78,26 @@ public class EditScenarioPropertiesAction extends DisplayStudyStepAction { myscenario = (Scenario) step.getOwner(); // The selected step belong to a scenario lasdate = datstring.format(myscenario.getLastModificationDate()); subject = label.getString("label.study") + " " + _openStudy.getTitle(); - - setMenuProperty("study"); - setTitleProperty("study"); + + setMenuProperty(Constants.STUDY_MENU); + setTitleProperty(Constants.STUDY_MENU); setEditDisabledProperty("true"); setToolProperty("back"); setLeftMenuProperty("open"); - initializationFullScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty, _leftMenuProperty); + initializationFullScreenContext(_menuProperty, _titleProperty, + _editDisabledProperty, _toolProperty, _leftMenuProperty); return SUCCESS; } - public String doCheckin() { + /** + * Mark the scenario as checked in. + * + * @return SUCCESS + * @throws InvalidPropertyException + * if scenario is not found in the database + */ + public String doCheckin() throws InvalidPropertyException { Step step; _openStudy = getOpenStudy(); @@ -100,21 +105,25 @@ public class EditScenarioPropertiesAction extends DisplayStudyStepAction { step = _openStudy.getSelectedStep(); myscenario = (Scenario) step.getOwner(); // The selected step belong to a scenario - getScenarioService().checkin(myscenario); + getScenarioService().checkin(myscenario.getIndex()); + // TODO: Do it in the business service after moving to DTO instead of id parameter + // or reread the scenario. + myscenario.setUser(null); _openStudy.getMenu().refreshGivenStepItem( getProjectElementService().getFirstStep(myscenario)); // For updating the scenario icon - - setMenuProperty("study"); - if ("true".equals(getWriteAccess()) && getUserRights().canCreateDocument()) { - setToolProperty("study"); + + setMenuProperty(Constants.STUDY_MENU); + if ("true".equals(getWriteAccess()) + && getUserRights().canCreateDocument()) { + setToolProperty(Constants.STUDY_MENU); } else { setToolProperty("standard"); } - setLeftMenuProperty("study"); - initializationFullScreenContext(_menuProperty, _toolProperty, _leftMenuProperty); + setLeftMenuProperty(Constants.STUDY_MENU); + initializationFullScreenContext(_menuProperty, _toolProperty, + _leftMenuProperty); - return SUCCESS; } @@ -122,36 +131,38 @@ public class EditScenarioPropertiesAction extends DisplayStudyStepAction { // Getters // ============================================================================================================================== + /** + * Get current scenario editor or author if the scenario is not checked out. + * + * @return the scenario editor or author + */ public User getAuthor() { - // ------------------------ - if (myscenario.isCheckedout()) - return myscenario.getUser(); - else - return myscenario.getAuthor(); + User author; + if (myscenario.isCheckedout()) { + author = myscenario.getUser(); + } else { + author = myscenario.getAuthor(); + } + return author; } public String getLastModificationDate() { - // ---------------------------------------- return lasdate; } public StepRights getSelectedStep() { - // ------------------------------------ return _openStudy.getSelectedStepRights(); // Forget about the step as only step enabling is tested } public String getSubject() { - // --------------------------- return subject; } public String getTitle() { - // ------------------------- return myscenario.getTitle(); } public boolean isCheckedout() { - // ------------------------------ return myscenario.isCheckedout(); } @@ -170,7 +181,7 @@ public class EditScenarioPropertiesAction extends DisplayStudyStepAction { * @param scenarioService * the scenarioService to set */ - public void setScenarioService(ScenarioService scenarioService) { + public void setScenarioService(final ScenarioService scenarioService) { _scenarioService = scenarioService; } @@ -190,86 +201,111 @@ public class EditScenarioPropertiesAction extends DisplayStudyStepAction { * the projectElementService to set */ public void setProjectElementService( - ProjectElementService projectElementService) { + final ProjectElementService projectElementService) { _projectElementService = projectElementService; } - + /** * Get the menuProperty. + * * @return the menuProperty */ + @Override public String getMenuProperty() { return _menuProperty; } /** * Set the menuProperty. - * @param menuProperty the menuProperty to set + * + * @param menuProperty + * the menuProperty to set */ - public void setMenuProperty(String menuProperty) { + @Override + public void setMenuProperty(final String menuProperty) { this._menuProperty = menuProperty; } - + /** * Get the _titleProperty. + * * @return the _titleProperty */ + @Override public String getTitleProperty() { return _titleProperty; } /** * Set the _titleProperty. - * @param _titleProperty the titleProperty to set + * + * @param _titleProperty + * the titleProperty to set */ - public void setTitleProperty(String titleProperty) { + @Override + public void setTitleProperty(final String titleProperty) { _titleProperty = titleProperty; } /** * Get the editDisabledProperty. + * * @return the editDisabledProperty */ + @Override public final String getEditDisabledProperty() { return _editDisabledProperty; } /** * Set the editDisabledProperty. - * @param editDisabledProperty the editDisabledProperty to set + * + * @param editDisabledProperty + * the editDisabledProperty to set */ - public final void setEditDisabledProperty(String editDisabledProperty) { + @Override + public final void setEditDisabledProperty(final String editDisabledProperty) { _editDisabledProperty = editDisabledProperty; } /** * Get the toolProperty. + * * @return the toolProperty */ + @Override public String getToolProperty() { return _toolProperty; } /** * Set the toolProperty. - * @param toolProperty the toolProperty to set + * + * @param toolProperty + * the toolProperty to set */ + @Override public void setToolProperty(final String toolProperty) { _toolProperty = toolProperty; } - + /** * Get the leftMenuProperty. + * * @return the leftMenuProperty */ + @Override public String getLeftMenuProperty() { return _leftMenuProperty; } /** * Set the leftMenuProperty. - * @param leftMenuProperty the leftMenuProperty to set + * + * @param leftMenuProperty + * the leftMenuProperty to set */ + @Override public void setLeftMenuProperty(final String leftMenuProperty) { _leftMenuProperty = leftMenuProperty; } diff --git a/Workspace/Siman/src/org/splat/wapp/ContextualMenu.java b/Workspace/Siman/src/org/splat/wapp/ContextualMenu.java index a32b858..e6e766c 100644 --- a/Workspace/Siman/src/org/splat/wapp/ContextualMenu.java +++ b/Workspace/Siman/src/org/splat/wapp/ContextualMenu.java @@ -17,7 +17,7 @@ public class ContextualMenu { protected transient int _width; protected transient int _height; protected transient Map _context; - protected transient List _items; // Instead of HashMap for being able to see ContextualMenu objects as Lists + protected List _items; // Instead of HashMap for being able to see ContextualMenu objects as Lists protected transient Map _indices; // Indices of ContextualItem objects into items private enum Side { @@ -121,4 +121,20 @@ public class ContextualMenu { public void setContext(final String name, final Object context) { this._context.put(name, context); } + + /** + * Get the items. + * @return the items + */ + public List getItems() { + return _items; + } + + /** + * Set the items. + * @param items the items to set + */ + public void setItems(final List items) { + _items = items; + } } \ No newline at end of file diff --git a/Workspace/Siman/src/som.properties b/Workspace/Siman/src/som.properties index 11e83af..61b0dce 100644 --- a/Workspace/Siman/src/som.properties +++ b/Workspace/Siman/src/som.properties @@ -8,21 +8,21 @@ menu.step.1 = Sp menu.step.2 = Concevoir le scénario menu.step.3 = Créer la géométrie menu.step.4 = Générer le modèle d''analyse -menu.step.5 = Entrer les conditions de calcul -menu.step.6 = Effectuer le calcul -menu.step.7 = Analyser les résultats -menu.step.8 = Capitaliser ce cas d''étude -menu.step.9 = Finaliser l''étude +#menu.step.5 = Entrer les conditions de calcul +menu.step.5 = Effectuer le calcul +menu.step.6 = Analyser les résultats +menu.step.7 = Capitaliser ce cas d''étude +menu.step.8 = Finaliser l''étude folder.step.1 = Spécification de l''étude folder.step.2 = Description du scénario folder.step.3 = Géométrie folder.step.4 = Modèle d''analyse -folder.step.5 = Conditions de calcul -folder.step.6 = Schéma de calcul -folder.step.7 = Résultats -folder.step.8 = Élements de connaissances -folder.step.9 = Rapport final +#folder.step.5 = Conditions de calcul +folder.step.5 = Schéma de calcul +folder.step.6 = Résultats +folder.step.7 = Élements de connaissances +folder.step.8 = Rapport final type.document.requirements = Cahier des charges type.document.specification = Document de spécification diff --git a/Workspace/Siman/src/som_en.properties b/Workspace/Siman/src/som_en.properties index 8a16f83..13cf269 100644 --- a/Workspace/Siman/src/som_en.properties +++ b/Workspace/Siman/src/som_en.properties @@ -8,21 +8,21 @@ menu.step.1 = Specify the study menu.step.2 = Design the scenario menu.step.3 = Create the geometry menu.step.4 = Generate the analysis model -menu.step.5 = Enter the boundary conditions -menu.step.6 = Execute the calculation -menu.step.7 = Analyze the results -menu.step.8 = Capitalize this use-case -menu.step.9 = Finalize the study +#menu.step.5 = Enter the boundary conditions +menu.step.5 = Execute the calculation +menu.step.6 = Analyze the results +menu.step.7 = Capitalize this use-case +menu.step.8 = Finalize the study folder.step.1 = Specification of the study folder.step.2 = Description of the scenario folder.step.3 = Geometry folder.step.4 = Analysis model -folder.step.5 = Boundary conditions -folder.step.6 = Calculation scheme -folder.step.7 = Calculation results -folder.step.8 = Knowledge elements -folder.step.9 = Final report +#folder.step.5 = Boundary conditions +folder.step.5 = Calculation scheme +folder.step.6 = Calculation results +folder.step.7 = Knowledge elements +folder.step.8 = Final report type.document.requirements = Customer requirements type.document.specification = Specification document -- 2.39.2