Ticket #2238: run-script-action.patch

File run-script-action.patch, 3.5 KB (added by deni, 15 years ago)
  • modules/org.sophie2.extra.func.scripting/src/main/java/org/sophie2/extra/func/scripting/logic/RunScriptLogic.java

    ### Eclipse Workspace Patch 1.0
    #P sophie
     
    137137                        BookView bookView = event.getSource(BookView.class); 
    138138 
    139139                        ResourceRefR4 scriptRef = action.getRef(); 
    140                         ResourceView trigerElement = event.getContext(ResourceView.class); 
    141                         ResourceAccess scriptAccess = trigerElement.getAccess().open(scriptRef, null); 
     140                        ResourceAccess access = event.getEventParam( 
     141                                        LinkEvent.RESOURCE_ACCESS_PARAM_INDEX, ResourceAccess.class); 
     142                        ResourceAccess scriptAccess = access.open(scriptRef, null); 
    142143                        String script = ScriptResourceR4.KEY_SOURCE_CODE.get(scriptAccess); 
    143144 
    144145                        final Context context = ContextFactory.getGlobal().enterContext(); 
  • modules/org.sophie2.extra.func.scripting/src/main/java/org/sophie2/extra/func/scripting/links/RunScriptConfigurationPanel.java

     
    3131import org.sophie2.extra.func.scripting.model.ScriptResourceR4; 
    3232import org.sophie2.main.app.commons.book.BookDocView; 
    3333import org.sophie2.main.app.commons.links.LinkHolder; 
     34import org.sophie2.main.app.commons.util.AppViewUtil; 
    3435import org.sophie2.main.func.links.ActionConfigurationPanel; 
    3536import org.sophie2.main.func.links.LinksHud; 
    3637import org.sophie2.main.func.links.LinksUtil; 
     
    117118 
    118119                @Override 
    119120                protected ComboState<ScriptResourceH> computeModelData() { 
    120                         BookDocView bdv = findParentElement(BookDocView.class); 
     121                        BookDocView bdv = AppViewUtil.getCurrentBookDocView(this); 
    121122                        if (bdv == null || bdv.model().get() == null) { 
    122123                                return new ComboState<ScriptResourceH>("", 
    123124                                                Collections.<ScriptResourceH> emptyList(), null); 
     
    129130                                        && hud.currentRule().get() != null 
    130131                                        && hud.currentRule().get().getAction() != null 
    131132                                        && hud.currentRule().get().getAction() instanceof RunScriptAction 
    132                                         && ((RunScriptAction) hud.currentRule().get().getAction()) 
    133                                         .getRef() != null) { 
    134                                 ruleScript = ((RunScriptAction) hud.currentRule().get().getAction() 
    135                                 ).getRef(); 
     133                                        && ((RunScriptAction) hud.currentRule().get().getAction()).getRef() != null) { 
     134                                ruleScript = ((RunScriptAction) hud.currentRule().get().getAction()).getRef(); 
    136135                        } 
    137136                        ScriptResourceH ruleScriptH = null; 
    138137                        BookH book = bdv.model().get(); 
     
    145144                                        ScriptResourceH script =  
    146145                                                ResourceH.getHelper(childAccess, ScriptResourceH.class); 
    147146                                        scripts.add(script); 
    148                                         if (script.getRef().equals(ruleScript)) { 
    149                                                 ruleScriptH = script; 
     147                                        if (hud != null && hud.holder().get() != null) { 
     148                                                ResourceRefR4 scriptRef =  
     149                                                        ResourceRefR4.getRelativeRef(hud.holder().get().getRef(), script.getRef()); 
     150                                                if (scriptRef.equals(ruleScript)) { 
     151                                                        ruleScriptH = script; 
     152                                                } 
    150153                                        } 
    151154                                } 
    152155                        }