From 5290361c67e54a7831a4cdcdefbd6cd69d3c302a Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Mon, 27 Sep 2021 18:57:10 +0200 Subject: [PATCH 1/9] Add support for Pre-Commit Call to jArchi Script via Command "com.archimatetool.scripts.command.runScript" --- .../META-INF/MANIFEST.MF | 6 ++-- .../actions/AbstractModelAction.java | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF index 57a3dcad..9d4a0f39 100644 --- a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF +++ b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF @@ -3,10 +3,12 @@ Bundle-ManifestVersion: 2 Bundle-Name: Archi Collaboration (coArchi) Bundle-SymbolicName: org.archicontribs.modelrepository;singleton:=true Bundle-Localization: plugin -Bundle-Version: 0.7.1.qualifier +Bundle-Version: 0.7.2.qualifier Bundle-Vendor: Phillip Beauvoir & Jean-Baptiste Sarrodie Require-Bundle: org.eclipse.help.ui, - com.archimatetool.editor;bundle-version="4.6.0" + com.archimatetool.editor;bundle-version="4.6.0", + org.eclipse.emf.common, + org.eclipse.ui.workbench Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Activator: org.archicontribs.modelrepository.ModelRepositoryPlugin diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java index 7ff5767d..1a3d250a 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java @@ -26,6 +26,13 @@ import com.archimatetool.editor.model.IEditorModelManager; import com.archimatetool.model.IArchimateModel; +import org.eclipse.core.commands.Parameterization; +import org.eclipse.core.commands.ParameterizedCommand; +import org.eclipse.core.commands.Command; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.handlers.IHandlerService; + /** * Abstract ModelAction * @@ -106,6 +113,25 @@ protected void displayCredentialsErrorDialog(Throwable ex) { ex.printStackTrace(); displayErrorDialog(Messages.AbstractModelAction_5, Messages.AbstractModelAction_11); } + + protected boolean callPreCommitScript(String scriptName) { + try { + String commandId = "com.archimatetool.scripts.command.runScript"; + String paramId = "com.archimatetool.scripts.command.runScript.param1"; + IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class); + ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class); + Command command = commandService.getCommand(commandId); + ParameterizedCommand parmCommand = + new ParameterizedCommand(command, new Parameterization[] { + new Parameterization(command.getParameter(paramId), scriptName) + }); + handlerService.executeCommand(parmCommand, null); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } /** * Offer to save the model @@ -134,6 +160,10 @@ protected boolean offerToSaveModel(IArchimateModel model) { * @return true if successful, false otherwise */ protected boolean offerToCommitChanges() { + + // Call pre-commit Script via jArchi plug-in command + callPreCommitScript("ExportSVG.ajs"); + CommitDialog commitDialog = new CommitDialog(fWindow.getShell(), getRepository()); int response = commitDialog.open(); From 4e3e9456a3a73fb1ef2e08b62aadfce45c78ef95 Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Mon, 27 Sep 2021 18:57:10 +0200 Subject: [PATCH 2/9] Add support for Pre-Commit Call to jArchi Script via Command "com.archimatetool.scripts.command.runScript" --- .../META-INF/MANIFEST.MF | 8 +++-- .../actions/AbstractModelAction.java | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF index 1cc8fb5d..9d4a0f39 100644 --- a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF +++ b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF @@ -3,12 +3,14 @@ Bundle-ManifestVersion: 2 Bundle-Name: Archi Collaboration (coArchi) Bundle-SymbolicName: org.archicontribs.modelrepository;singleton:=true Bundle-Localization: plugin -Bundle-Version: 0.8.1.qualifier +Bundle-Version: 0.7.2.qualifier Bundle-Vendor: Phillip Beauvoir & Jean-Baptiste Sarrodie Require-Bundle: org.eclipse.help.ui, - com.archimatetool.editor;bundle-version="4.9.0" + com.archimatetool.editor;bundle-version="4.6.0", + org.eclipse.emf.common, + org.eclipse.ui.workbench Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-11 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Activator: org.archicontribs.modelrepository.ModelRepositoryPlugin Export-Package: org.archicontribs.modelrepository, org.archicontribs.modelrepository.actions, diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java index 7ff5767d..1a3d250a 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java @@ -26,6 +26,13 @@ import com.archimatetool.editor.model.IEditorModelManager; import com.archimatetool.model.IArchimateModel; +import org.eclipse.core.commands.Parameterization; +import org.eclipse.core.commands.ParameterizedCommand; +import org.eclipse.core.commands.Command; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.handlers.IHandlerService; + /** * Abstract ModelAction * @@ -106,6 +113,25 @@ protected void displayCredentialsErrorDialog(Throwable ex) { ex.printStackTrace(); displayErrorDialog(Messages.AbstractModelAction_5, Messages.AbstractModelAction_11); } + + protected boolean callPreCommitScript(String scriptName) { + try { + String commandId = "com.archimatetool.scripts.command.runScript"; + String paramId = "com.archimatetool.scripts.command.runScript.param1"; + IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class); + ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class); + Command command = commandService.getCommand(commandId); + ParameterizedCommand parmCommand = + new ParameterizedCommand(command, new Parameterization[] { + new Parameterization(command.getParameter(paramId), scriptName) + }); + handlerService.executeCommand(parmCommand, null); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } /** * Offer to save the model @@ -134,6 +160,10 @@ protected boolean offerToSaveModel(IArchimateModel model) { * @return true if successful, false otherwise */ protected boolean offerToCommitChanges() { + + // Call pre-commit Script via jArchi plug-in command + callPreCommitScript("ExportSVG.ajs"); + CommitDialog commitDialog = new CommitDialog(fWindow.getShell(), getRepository()); int response = commitDialog.open(); From c0b86a244e62fb7ab265f636ecd994f6976b6817 Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Tue, 7 Dec 2021 16:32:55 +0100 Subject: [PATCH 3/9] + Add Preference Page for jArchi Commit Script --- .../actions/AbstractModelAction.java | 7 +++++- .../preferences/IPreferenceConstants.java | 2 ++ .../modelrepository/preferences/Messages.java | 2 ++ .../ModelRepositoryPreferencePage.java | 22 +++++++++++++++++++ .../preferences/PreferenceInitializer.java | 2 ++ .../preferences/messages.properties | 2 ++ 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java index 1a3d250a..f30d8140 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java @@ -9,6 +9,7 @@ import java.lang.reflect.InvocationTargetException; import java.security.GeneralSecurityException; +import org.archicontribs.modelrepository.ModelRepositoryPlugin; import org.archicontribs.modelrepository.authentication.EncryptedCredentialsStorage; import org.archicontribs.modelrepository.authentication.UsernamePassword; import org.archicontribs.modelrepository.dialogs.CommitDialog; @@ -17,6 +18,7 @@ import org.archicontribs.modelrepository.grafico.IArchiRepository; import org.archicontribs.modelrepository.grafico.IRepositoryListener; import org.archicontribs.modelrepository.grafico.RepositoryListenerManager; +import org.archicontribs.modelrepository.preferences.IPreferenceConstants; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.window.Window; @@ -162,7 +164,10 @@ protected boolean offerToSaveModel(IArchimateModel model) { protected boolean offerToCommitChanges() { // Call pre-commit Script via jArchi plug-in command - callPreCommitScript("ExportSVG.ajs"); + String scriptname = ModelRepositoryPlugin.INSTANCE.getPreferenceStore().getString(IPreferenceConstants.PREFS_JARCHI_COMMIT_SCRIPT); + if (scriptname != "" && scriptname != null) { + callPreCommitScript(scriptname + ".ajs"); + } CommitDialog commitDialog = new CommitDialog(fWindow.getShell(), getRepository()); int response = commitDialog.open(); diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java index 5316a193..7c2f2fdf 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java @@ -60,4 +60,6 @@ public interface IPreferenceConstants { String PREFS_PRIMARY_PASSWORD_TIMEOUT = "passwordPrimaryTimeout"; String PREFS_PASSWORD_INACTIVITY_TIMEOUT = "passwordInactivityTimeout"; + + String PREFS_JARCHI_COMMIT_SCRIPT = "jarchiCommitScript"; } diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java index 8ed7a332..38ec29a9 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java @@ -43,6 +43,8 @@ public class Messages extends NLS { public static String ModelRepositoryPreferencePage_21; public static String ModelRepositoryPreferencePage_25; + + public static String ModelRepositoryPreferencePage_26; public static String ModelRepositoryPreferencePage_3; diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java index 601a881a..e91650d6 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java @@ -75,6 +75,9 @@ public class ModelRepositoryPreferencePage private Text fProxyUserNameTextField; private Text fProxyUserPasswordTextField; + + private Text fCommitScriptTextField; + private boolean sshPasswordChanged; private boolean proxyUsernameChanged; private boolean proxyPasswordChanged; @@ -303,6 +306,18 @@ public void widgetSelected(SelectionEvent e) { fProxyUserPasswordTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); fProxyUserPasswordTextField.setEnabled(false); + // Commit Script Hook + Group commitScriptGroup = new Group(client, SWT.NULL); + commitScriptGroup.setText(Messages.ModelRepositoryPreferencePage_25); + commitScriptGroup.setLayout(new GridLayout(2, false)); + commitScriptGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + label = new Label(commitScriptGroup, SWT.NULL); + label.setText(Messages.ModelRepositoryPreferencePage_26); + + fCommitScriptTextField = UIUtils.createSingleTextControl(commitScriptGroup, SWT.BORDER, false); + fCommitScriptTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + setValues(); return client; @@ -336,6 +351,9 @@ private void setValues() { fUserNameTextField.setText(result.getName()); fUserEmailTextField.setText(result.getEmailAddress()); + // JArchi Integration + fCommitScriptTextField.setText(getPreferenceStore().getString(PREFS_JARCHI_COMMIT_SCRIPT)); + // Workspace folder fUserRepoFolderTextField.setText(getPreferenceStore().getString(PREFS_REPOSITORY_FOLDER)); @@ -401,6 +419,8 @@ public boolean performOk() { ex.printStackTrace(); } + getPreferenceStore().setValue(PREFS_JARCHI_COMMIT_SCRIPT, fCommitScriptTextField.getText()); + getPreferenceStore().setValue(PREFS_REPOSITORY_FOLDER, fUserRepoFolderTextField.getText()); getPreferenceStore().setValue(PREFS_SSH_IDENTITY_FILE, fSSHIdentityFileTextField.getText()); getPreferenceStore().setValue(PREFS_SSH_IDENTITY_REQUIRES_PASSWORD, fSSHIdentityRequiresPasswordButton.getSelection()); @@ -477,6 +497,8 @@ protected void performDefaults() { fProxyUserNameTextField.setText(""); //$NON-NLS-1$ fProxyUserPasswordTextField.setText(""); //$NON-NLS-1$ + fCommitScriptTextField.setText(getPreferenceStore().getDefaultString(PREFS_JARCHI_COMMIT_SCRIPT)); + updateIdentityControls(); updateProxyControls(); } diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java index b1ff458b..4b84ba83 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java @@ -50,5 +50,7 @@ public void initializeDefaultPreferences() { store.setDefault(PREFS_PASSWORD_MIN_UPPERCASE_CHARS, 0); store.setDefault(PREFS_PASSWORD_MIN_DIGITS, 0); store.setDefault(PREFS_PASSWORD_MIN_SPECIAL_CHARS, 0); + + store.setDefault(PREFS_JARCHI_COMMIT_SCRIPT, ""); } } diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties index aec81aec..dc92e0ab 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties @@ -14,6 +14,8 @@ ModelRepositoryPreferencePage_20=SSH identity file ModelRepositoryPreferencePage_22=Requires password ModelRepositoryPreferencePage_23=Identity password: ModelRepositoryPreferencePage_24=Identity file: +ModelRepositoryPreferencePage_25=jArchi Integration +ModelRepositoryPreferencePage_26=Commit Script Name: ModelRepositoryPreferencePage_2=Name: ModelRepositoryPreferencePage_21=Fetch interval (secs) ModelRepositoryPreferencePage_25=Change Primary Password... From fc2168c4129264ba1368ef3ceef2c660d0b14f8e Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Tue, 7 Dec 2021 16:33:23 +0100 Subject: [PATCH 4/9] + Bump Version 0.8.2 --- org.archicontribs.modelrepository/META-INF/MANIFEST.MF | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF index 9d4a0f39..b4dd27a7 100644 --- a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF +++ b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF @@ -3,14 +3,12 @@ Bundle-ManifestVersion: 2 Bundle-Name: Archi Collaboration (coArchi) Bundle-SymbolicName: org.archicontribs.modelrepository;singleton:=true Bundle-Localization: plugin -Bundle-Version: 0.7.2.qualifier +Bundle-Version: 0.8.2.qualifier Bundle-Vendor: Phillip Beauvoir & Jean-Baptiste Sarrodie Require-Bundle: org.eclipse.help.ui, - com.archimatetool.editor;bundle-version="4.6.0", - org.eclipse.emf.common, - org.eclipse.ui.workbench + com.archimatetool.editor;bundle-version="4.9.0" Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-Activator: org.archicontribs.modelrepository.ModelRepositoryPlugin Export-Package: org.archicontribs.modelrepository, org.archicontribs.modelrepository.actions, From 741f606896404409b9004091e127e88a86f8608c Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Mon, 24 Jan 2022 08:04:21 +0100 Subject: [PATCH 5/9] Correct message ENUM for "jArchi Integration" --- .../archicontribs/modelrepository/preferences/Messages.java | 2 ++ .../preferences/ModelRepositoryPreferencePage.java | 4 ++-- .../modelrepository/preferences/messages.properties | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java index 38ec29a9..f8a7c6e2 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java @@ -45,6 +45,8 @@ public class Messages extends NLS { public static String ModelRepositoryPreferencePage_25; public static String ModelRepositoryPreferencePage_26; + + public static String ModelRepositoryPreferencePage_27; public static String ModelRepositoryPreferencePage_3; diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java index e91650d6..c7879aba 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java @@ -308,12 +308,12 @@ public void widgetSelected(SelectionEvent e) { // Commit Script Hook Group commitScriptGroup = new Group(client, SWT.NULL); - commitScriptGroup.setText(Messages.ModelRepositoryPreferencePage_25); + commitScriptGroup.setText(Messages.ModelRepositoryPreferencePage_26); commitScriptGroup.setLayout(new GridLayout(2, false)); commitScriptGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(commitScriptGroup, SWT.NULL); - label.setText(Messages.ModelRepositoryPreferencePage_26); + label.setText(Messages.ModelRepositoryPreferencePage_27); fCommitScriptTextField = UIUtils.createSingleTextControl(commitScriptGroup, SWT.BORDER, false); fCommitScriptTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties index dc92e0ab..befa76b6 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties @@ -14,11 +14,11 @@ ModelRepositoryPreferencePage_20=SSH identity file ModelRepositoryPreferencePage_22=Requires password ModelRepositoryPreferencePage_23=Identity password: ModelRepositoryPreferencePage_24=Identity file: -ModelRepositoryPreferencePage_25=jArchi Integration -ModelRepositoryPreferencePage_26=Commit Script Name: ModelRepositoryPreferencePage_2=Name: ModelRepositoryPreferencePage_21=Fetch interval (secs) ModelRepositoryPreferencePage_25=Change Primary Password... +ModelRepositoryPreferencePage_26=jArchi Integration +ModelRepositoryPreferencePage_27=Commit Script Name: ModelRepositoryPreferencePage_3=Email: ModelRepositoryPreferencePage_4=Workspace ModelRepositoryPreferencePage_5=Collaboration Workspace folder: From 91f69374641bfbe6a60c735862190dbbb2980077 Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Mon, 27 Sep 2021 18:57:10 +0200 Subject: [PATCH 6/9] Add support for Pre-Commit Call to jArchi Script via Command "com.archimatetool.scripts.command.runScript" --- .../META-INF/MANIFEST.MF | 8 +++-- .../actions/AbstractModelAction.java | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF index 1cc8fb5d..9d4a0f39 100644 --- a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF +++ b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF @@ -3,12 +3,14 @@ Bundle-ManifestVersion: 2 Bundle-Name: Archi Collaboration (coArchi) Bundle-SymbolicName: org.archicontribs.modelrepository;singleton:=true Bundle-Localization: plugin -Bundle-Version: 0.8.1.qualifier +Bundle-Version: 0.7.2.qualifier Bundle-Vendor: Phillip Beauvoir & Jean-Baptiste Sarrodie Require-Bundle: org.eclipse.help.ui, - com.archimatetool.editor;bundle-version="4.9.0" + com.archimatetool.editor;bundle-version="4.6.0", + org.eclipse.emf.common, + org.eclipse.ui.workbench Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-11 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Activator: org.archicontribs.modelrepository.ModelRepositoryPlugin Export-Package: org.archicontribs.modelrepository, org.archicontribs.modelrepository.actions, diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java index 7ff5767d..1a3d250a 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java @@ -26,6 +26,13 @@ import com.archimatetool.editor.model.IEditorModelManager; import com.archimatetool.model.IArchimateModel; +import org.eclipse.core.commands.Parameterization; +import org.eclipse.core.commands.ParameterizedCommand; +import org.eclipse.core.commands.Command; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.handlers.IHandlerService; + /** * Abstract ModelAction * @@ -106,6 +113,25 @@ protected void displayCredentialsErrorDialog(Throwable ex) { ex.printStackTrace(); displayErrorDialog(Messages.AbstractModelAction_5, Messages.AbstractModelAction_11); } + + protected boolean callPreCommitScript(String scriptName) { + try { + String commandId = "com.archimatetool.scripts.command.runScript"; + String paramId = "com.archimatetool.scripts.command.runScript.param1"; + IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class); + ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class); + Command command = commandService.getCommand(commandId); + ParameterizedCommand parmCommand = + new ParameterizedCommand(command, new Parameterization[] { + new Parameterization(command.getParameter(paramId), scriptName) + }); + handlerService.executeCommand(parmCommand, null); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } /** * Offer to save the model @@ -134,6 +160,10 @@ protected boolean offerToSaveModel(IArchimateModel model) { * @return true if successful, false otherwise */ protected boolean offerToCommitChanges() { + + // Call pre-commit Script via jArchi plug-in command + callPreCommitScript("ExportSVG.ajs"); + CommitDialog commitDialog = new CommitDialog(fWindow.getShell(), getRepository()); int response = commitDialog.open(); From 3a42ddc162f51b4296162dc6c00cf707696682a9 Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Tue, 7 Dec 2021 16:32:55 +0100 Subject: [PATCH 7/9] + Add Preference Page for jArchi Commit Script --- .../actions/AbstractModelAction.java | 7 +++++- .../preferences/IPreferenceConstants.java | 2 ++ .../modelrepository/preferences/Messages.java | 2 ++ .../ModelRepositoryPreferencePage.java | 22 +++++++++++++++++++ .../preferences/PreferenceInitializer.java | 2 ++ .../preferences/messages.properties | 2 ++ 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java index 1a3d250a..f30d8140 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/actions/AbstractModelAction.java @@ -9,6 +9,7 @@ import java.lang.reflect.InvocationTargetException; import java.security.GeneralSecurityException; +import org.archicontribs.modelrepository.ModelRepositoryPlugin; import org.archicontribs.modelrepository.authentication.EncryptedCredentialsStorage; import org.archicontribs.modelrepository.authentication.UsernamePassword; import org.archicontribs.modelrepository.dialogs.CommitDialog; @@ -17,6 +18,7 @@ import org.archicontribs.modelrepository.grafico.IArchiRepository; import org.archicontribs.modelrepository.grafico.IRepositoryListener; import org.archicontribs.modelrepository.grafico.RepositoryListenerManager; +import org.archicontribs.modelrepository.preferences.IPreferenceConstants; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.window.Window; @@ -162,7 +164,10 @@ protected boolean offerToSaveModel(IArchimateModel model) { protected boolean offerToCommitChanges() { // Call pre-commit Script via jArchi plug-in command - callPreCommitScript("ExportSVG.ajs"); + String scriptname = ModelRepositoryPlugin.INSTANCE.getPreferenceStore().getString(IPreferenceConstants.PREFS_JARCHI_COMMIT_SCRIPT); + if (scriptname != "" && scriptname != null) { + callPreCommitScript(scriptname + ".ajs"); + } CommitDialog commitDialog = new CommitDialog(fWindow.getShell(), getRepository()); int response = commitDialog.open(); diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java index 5316a193..7c2f2fdf 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/IPreferenceConstants.java @@ -60,4 +60,6 @@ public interface IPreferenceConstants { String PREFS_PRIMARY_PASSWORD_TIMEOUT = "passwordPrimaryTimeout"; String PREFS_PASSWORD_INACTIVITY_TIMEOUT = "passwordInactivityTimeout"; + + String PREFS_JARCHI_COMMIT_SCRIPT = "jarchiCommitScript"; } diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java index 8ed7a332..38ec29a9 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java @@ -43,6 +43,8 @@ public class Messages extends NLS { public static String ModelRepositoryPreferencePage_21; public static String ModelRepositoryPreferencePage_25; + + public static String ModelRepositoryPreferencePage_26; public static String ModelRepositoryPreferencePage_3; diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java index 601a881a..e91650d6 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java @@ -75,6 +75,9 @@ public class ModelRepositoryPreferencePage private Text fProxyUserNameTextField; private Text fProxyUserPasswordTextField; + + private Text fCommitScriptTextField; + private boolean sshPasswordChanged; private boolean proxyUsernameChanged; private boolean proxyPasswordChanged; @@ -303,6 +306,18 @@ public void widgetSelected(SelectionEvent e) { fProxyUserPasswordTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); fProxyUserPasswordTextField.setEnabled(false); + // Commit Script Hook + Group commitScriptGroup = new Group(client, SWT.NULL); + commitScriptGroup.setText(Messages.ModelRepositoryPreferencePage_25); + commitScriptGroup.setLayout(new GridLayout(2, false)); + commitScriptGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + label = new Label(commitScriptGroup, SWT.NULL); + label.setText(Messages.ModelRepositoryPreferencePage_26); + + fCommitScriptTextField = UIUtils.createSingleTextControl(commitScriptGroup, SWT.BORDER, false); + fCommitScriptTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + setValues(); return client; @@ -336,6 +351,9 @@ private void setValues() { fUserNameTextField.setText(result.getName()); fUserEmailTextField.setText(result.getEmailAddress()); + // JArchi Integration + fCommitScriptTextField.setText(getPreferenceStore().getString(PREFS_JARCHI_COMMIT_SCRIPT)); + // Workspace folder fUserRepoFolderTextField.setText(getPreferenceStore().getString(PREFS_REPOSITORY_FOLDER)); @@ -401,6 +419,8 @@ public boolean performOk() { ex.printStackTrace(); } + getPreferenceStore().setValue(PREFS_JARCHI_COMMIT_SCRIPT, fCommitScriptTextField.getText()); + getPreferenceStore().setValue(PREFS_REPOSITORY_FOLDER, fUserRepoFolderTextField.getText()); getPreferenceStore().setValue(PREFS_SSH_IDENTITY_FILE, fSSHIdentityFileTextField.getText()); getPreferenceStore().setValue(PREFS_SSH_IDENTITY_REQUIRES_PASSWORD, fSSHIdentityRequiresPasswordButton.getSelection()); @@ -477,6 +497,8 @@ protected void performDefaults() { fProxyUserNameTextField.setText(""); //$NON-NLS-1$ fProxyUserPasswordTextField.setText(""); //$NON-NLS-1$ + fCommitScriptTextField.setText(getPreferenceStore().getDefaultString(PREFS_JARCHI_COMMIT_SCRIPT)); + updateIdentityControls(); updateProxyControls(); } diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java index b1ff458b..4b84ba83 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/PreferenceInitializer.java @@ -50,5 +50,7 @@ public void initializeDefaultPreferences() { store.setDefault(PREFS_PASSWORD_MIN_UPPERCASE_CHARS, 0); store.setDefault(PREFS_PASSWORD_MIN_DIGITS, 0); store.setDefault(PREFS_PASSWORD_MIN_SPECIAL_CHARS, 0); + + store.setDefault(PREFS_JARCHI_COMMIT_SCRIPT, ""); } } diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties index aec81aec..dc92e0ab 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties @@ -14,6 +14,8 @@ ModelRepositoryPreferencePage_20=SSH identity file ModelRepositoryPreferencePage_22=Requires password ModelRepositoryPreferencePage_23=Identity password: ModelRepositoryPreferencePage_24=Identity file: +ModelRepositoryPreferencePage_25=jArchi Integration +ModelRepositoryPreferencePage_26=Commit Script Name: ModelRepositoryPreferencePage_2=Name: ModelRepositoryPreferencePage_21=Fetch interval (secs) ModelRepositoryPreferencePage_25=Change Primary Password... From 536c062762def8c73ed6c93d597c7dd5e84a2db2 Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Tue, 7 Dec 2021 16:33:23 +0100 Subject: [PATCH 8/9] + Bump Version 0.8.2 --- org.archicontribs.modelrepository/META-INF/MANIFEST.MF | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF index 9d4a0f39..b4dd27a7 100644 --- a/org.archicontribs.modelrepository/META-INF/MANIFEST.MF +++ b/org.archicontribs.modelrepository/META-INF/MANIFEST.MF @@ -3,14 +3,12 @@ Bundle-ManifestVersion: 2 Bundle-Name: Archi Collaboration (coArchi) Bundle-SymbolicName: org.archicontribs.modelrepository;singleton:=true Bundle-Localization: plugin -Bundle-Version: 0.7.2.qualifier +Bundle-Version: 0.8.2.qualifier Bundle-Vendor: Phillip Beauvoir & Jean-Baptiste Sarrodie Require-Bundle: org.eclipse.help.ui, - com.archimatetool.editor;bundle-version="4.6.0", - org.eclipse.emf.common, - org.eclipse.ui.workbench + com.archimatetool.editor;bundle-version="4.9.0" Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-Activator: org.archicontribs.modelrepository.ModelRepositoryPlugin Export-Package: org.archicontribs.modelrepository, org.archicontribs.modelrepository.actions, From 5f5e6c8fa6f48b2cd77834db878381d1fca97c9f Mon Sep 17 00:00:00 2001 From: Dominic Winkler Date: Mon, 24 Jan 2022 08:04:21 +0100 Subject: [PATCH 9/9] Correct message ENUM for "jArchi Integration" --- .../archicontribs/modelrepository/preferences/Messages.java | 2 ++ .../preferences/ModelRepositoryPreferencePage.java | 4 ++-- .../modelrepository/preferences/messages.properties | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java index 38ec29a9..f8a7c6e2 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/Messages.java @@ -45,6 +45,8 @@ public class Messages extends NLS { public static String ModelRepositoryPreferencePage_25; public static String ModelRepositoryPreferencePage_26; + + public static String ModelRepositoryPreferencePage_27; public static String ModelRepositoryPreferencePage_3; diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java index e91650d6..c7879aba 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/ModelRepositoryPreferencePage.java @@ -308,12 +308,12 @@ public void widgetSelected(SelectionEvent e) { // Commit Script Hook Group commitScriptGroup = new Group(client, SWT.NULL); - commitScriptGroup.setText(Messages.ModelRepositoryPreferencePage_25); + commitScriptGroup.setText(Messages.ModelRepositoryPreferencePage_26); commitScriptGroup.setLayout(new GridLayout(2, false)); commitScriptGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(commitScriptGroup, SWT.NULL); - label.setText(Messages.ModelRepositoryPreferencePage_26); + label.setText(Messages.ModelRepositoryPreferencePage_27); fCommitScriptTextField = UIUtils.createSingleTextControl(commitScriptGroup, SWT.BORDER, false); fCommitScriptTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); diff --git a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties index dc92e0ab..befa76b6 100644 --- a/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties +++ b/org.archicontribs.modelrepository/src/org/archicontribs/modelrepository/preferences/messages.properties @@ -14,11 +14,11 @@ ModelRepositoryPreferencePage_20=SSH identity file ModelRepositoryPreferencePage_22=Requires password ModelRepositoryPreferencePage_23=Identity password: ModelRepositoryPreferencePage_24=Identity file: -ModelRepositoryPreferencePage_25=jArchi Integration -ModelRepositoryPreferencePage_26=Commit Script Name: ModelRepositoryPreferencePage_2=Name: ModelRepositoryPreferencePage_21=Fetch interval (secs) ModelRepositoryPreferencePage_25=Change Primary Password... +ModelRepositoryPreferencePage_26=jArchi Integration +ModelRepositoryPreferencePage_27=Commit Script Name: ModelRepositoryPreferencePage_3=Email: ModelRepositoryPreferencePage_4=Workspace ModelRepositoryPreferencePage_5=Collaboration Workspace folder: