diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/.classpath b/bundles/org.eclipse.passage.lic.agreements.e4.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/.project b/bundles/org.eclipse.passage.lic.agreements.e4.ui/.project
deleted file mode 100644
index d6724b09f..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.lic.agreements.e4.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.agreements.e4.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index bff1a4d93..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.lic.agreements.e4.ui
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.passage.lic.agreements.e4.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Name: %Bundle-Name
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.jface;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
- org.eclipse.passage.lic.jface;bundle-version="0.0.0",
- org.eclipse.passage.lic.agreements.edit;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.lic.agreements.e4.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 99969e61e..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LIC Agreements E4 UI
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/about.html b/bundles/org.eclipse.passage.lic.agreements.e4.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/build.properties b/bundles/org.eclipse.passage.lic.agreements.e4.ui/build.properties
deleted file mode 100644
index c364a0e34..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2021 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- plugin.xml,\
- about.html
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/plugin.xml b/bundles/org.eclipse.passage.lic.agreements.e4.ui/plugin.xml
deleted file mode 100644
index 3cc759922..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.agreements.e4.ui/src/org/eclipse/passage/lic/internal/agreements/e4/ui/AgreementsE4UiProcessor.java b/bundles/org.eclipse.passage.lic.agreements.e4.ui/src/org/eclipse/passage/lic/internal/agreements/e4/ui/AgreementsE4UiProcessor.java
deleted file mode 100644
index e718a23f4..000000000
--- a/bundles/org.eclipse.passage.lic.agreements.e4.ui/src/org/eclipse/passage/lic/internal/agreements/e4/ui/AgreementsE4UiProcessor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.lic.internal.agreements.e4.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.agreements.edit.AgreementsEditPlugin;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.swt.widgets.Display;
-
-public class AgreementsE4UiProcessor {
-
- @Execute
- void process(IEclipseContext context) {
- Display display = context.get(Display.class);
- if (display != null) {
- doRegisterImages();
- }
- }
-
- private void doRegisterImages() {
- LicensingImages.getImageRegistry();
- String pattern = "$nl$/icons/full/obj16/%s"; //$NON-NLS-1$
-
- registerFeatures(pattern);
- }
-
- private void registerFeatures(String pattern) {
- Map paths = new HashMap();
- AgreementsPackage agreements = AgreementsPackage.eINSTANCE;
- paths.put(agreements.getName(), String.format(pattern, "agreement.png")); //$NON-NLS-1$
- paths.put(agreements.getAgreementGroup().getName(), String.format(pattern, "agreement.png")); //$NON-NLS-1$
- paths.put(agreements.getAgreement().getName(), String.format(pattern, "agreement.png")); //$NON-NLS-1$
- LicensingImages.declareImages(AgreementsEditPlugin.class, paths);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.lic.agreements.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.agreements.model/META-INF/MANIFEST.MF
index 48098bb61..9cce33686 100644
--- a/bundles/org.eclipse.passage.lic.agreements.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.agreements.model/META-INF/MANIFEST.MF
@@ -17,7 +17,7 @@ Export-Package: org.eclipse.passage.lic.agreements.model.api,
org.eclipse.passage.lic.agreements.model.impl;x-internal:=true,
org.eclipse.passage.lic.agreements.model.meta,
org.eclipse.passage.lic.agreements.model.util,
- org.eclipse.passage.lic.internal.agreements.model;x-friends:="org.eclipse.passage.loc.dashboard.ui",
+ org.eclipse.passage.lic.internal.agreements.model;x-internal:=true,
org.eclipse.passage.lic.internal.agreements.model.util;x-internal:=true
Bundle-ClassPath: .
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF
index 6f33520aa..e69f06ff8 100644
--- a/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF
@@ -27,7 +27,7 @@ Export-Package: org.eclipse.passage.lic.base,
org.eclipse.passage.lic.internal.base.access;x-internal:=true,
org.eclipse.passage.lic.internal.base.access.storage;x-internal:=true,
org.eclipse.passage.lic.internal.base.conditions;x-internal:=true,
- org.eclipse.passage.lic.internal.base.inspection.hardware;x-friends:="org.eclipse.passage.loc.licenses.core,org.eclipse.passage.lic.oshi",
+ org.eclipse.passage.lic.internal.base.inspection.hardware;x-friends:="org.eclipse.passage.lic.oshi",
org.eclipse.passage.lic.internal.base.requirements;x-internal:=true,
org.eclipse.passage.lic.internal.base.time;x-friends:="org.eclipse.passage.lic.base.tests"
Import-Package: org.slf4j;version="1.7.36"
diff --git a/bundles/org.eclipse.passage.lic.e4.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.e4.core/META-INF/MANIFEST.MF
index c5a0256ab..3680dd234 100644
--- a/bundles/org.eclipse.passage.lic.e4.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.e4.core/META-INF/MANIFEST.MF
@@ -12,4 +12,4 @@ Require-Bundle: org.eclipse.core.commands;bundle-version="0.0.0",
org.eclipse.e4.core.services;bundle-version="0.0.0",
org.eclipse.e4.core.contexts;bundle-version="0.0.0",
org.eclipse.e4.core.commands;bundle-version="0.0.0"
-Export-Package: org.eclipse.passage.lic.internal.e4.core.commands;x-friends:="org.eclipse.passage.loc.workbench,org.eclipse.passage.loc.dashboard.ui"
+Export-Package: org.eclipse.passage.lic.internal.e4.core.commands;x-internal:=true
diff --git a/bundles/org.eclipse.passage.lic.e4.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.e4.ui/META-INF/MANIFEST.MF
index 70b1d45f7..74e891e6b 100644
--- a/bundles/org.eclipse.passage.lic.e4.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.e4.ui/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@ Require-Bundle: org.eclipse.jface;bundle-version="0.0.0",
org.eclipse.e4.ui.di;bundle-version="0.0.0",
org.eclipse.passage.lic.equinox;bundle-version="0.0.0",
org.eclipse.passage.lic.jface;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0",
+Import-Package: jakarta.inject;version="2.0.1",
org.osgi.service.event;version="1.0.0"
Export-Package: org.eclipse.passage.lic.e4.ui.addons;x-internal:=true,
org.eclipse.passage.lic.internal.e4.ui.handlers;x-internal:=true,
diff --git a/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingAddon.java b/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingAddon.java
index 14605a3e9..2ebb3eee4 100644
--- a/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingAddon.java
+++ b/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingAddon.java
@@ -12,8 +12,6 @@
*******************************************************************************/
package org.eclipse.passage.lic.e4.ui.addons;
-import javax.inject.Inject;
-
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
@@ -33,6 +31,8 @@
import org.eclipse.swt.widgets.Shell;
import org.osgi.service.event.Event;
+import jakarta.inject.Inject;
+
/**
* @since 2.1
*/
diff --git a/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingProcessor.java b/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingProcessor.java
index 2d4c0c4a7..a52b7c5ba 100644
--- a/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingProcessor.java
+++ b/bundles/org.eclipse.passage.lic.e4.ui/src/org/eclipse/passage/lic/e4/ui/addons/E4LicensingProcessor.java
@@ -12,13 +12,13 @@
*******************************************************************************/
package org.eclipse.passage.lic.e4.ui.addons;
-import javax.inject.Inject;
-
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.MAddon;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.MApplicationFactory;
+import jakarta.inject.Inject;
+
/**
* @since 2.1
*/
diff --git a/bundles/org.eclipse.passage.lic.emf/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.emf/META-INF/MANIFEST.MF
index 0fe89d688..ee4a1fce0 100644
--- a/bundles/org.eclipse.passage.lic.emf/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.emf/META-INF/MANIFEST.MF
@@ -34,7 +34,7 @@ Export-Package: org.eclipse.passage.lic.emf;x-internal:=true,
org.eclipse.passage.lic.products.model,
org.eclipse.passage.lic.users.model",
org.eclipse.passage.lic.internal.emf;x-friends:="org.eclipse.passage.lic.net",
- org.eclipse.passage.lic.internal.emf.i18n;x-friends:="org.eclipse.passage.loc.equinox",
+ org.eclipse.passage.lic.internal.emf.i18n;x-internal:=true,
org.eclipse.passage.lic.internal.emf.migration;
x-friends:="org.eclipse.passage.lic.features.model,
org.eclipse.passage.lic.keys.model,
diff --git a/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF
index 9800353b2..2fe06ccc5 100644
--- a/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF
@@ -17,13 +17,9 @@ Export-Package: org.eclipse.passage.lic.equinox;x-internal:=true,
org.eclipse.passage.lic.equinox.conditions;x-internal:=true,
org.eclipse.passage.lic.equinox.io;x-internal:=true,
org.eclipse.passage.lic.equinox.requirements;x-internal:=true,
- org.eclipse.passage.lic.internal.equinox;x-friends:="org.eclipse.passage.loc.licenses.core,org.eclipse.passage.lic.jetty",
+ org.eclipse.passage.lic.internal.equinox;x-internal:=true,
org.eclipse.passage.lic.internal.equinox.access;x-internal:=true,
- org.eclipse.passage.lic.internal.equinox.events;
- x-friends:="org.eclipse.passage.loc.features.core,
- org.eclipse.passage.loc.products.core,
- org.eclipse.passage.loc.licenses.core,
- org.eclipse.passage.loc.users.core"
+ org.eclipse.passage.lic.internal.equinox.events;x-internal:=true
Import-Package: org.osgi.service.component.runtime;version="1.0.0",
org.osgi.service.component.runtime.dto;version="1.0.0",
org.osgi.service.event;version="1.0.0",
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/.classpath b/bundles/org.eclipse.passage.lic.features.e4.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/.project b/bundles/org.eclipse.passage.lic.features.e4.ui/.project
deleted file mode 100644
index 174b63b37..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.lic.features.e4.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.features.e4.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 20d4f24de..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.lic.features.e4.ui
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.passage.lic.features.e4.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.jface;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
- org.eclipse.passage.lic.jface;bundle-version="0.0.0",
- org.eclipse.passage.lic.features.edit;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.lic.features.e4.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index c709cb856..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LIC Features E4 UI
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp and others.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/about.html b/bundles/org.eclipse.passage.lic.features.e4.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/build.properties b/bundles/org.eclipse.passage.lic.features.e4.ui/build.properties
deleted file mode 100644
index eb681f81d..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2020 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- plugin.xml,\
- about.html
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/plugin.xml b/bundles/org.eclipse.passage.lic.features.e4.ui/plugin.xml
deleted file mode 100644
index 5f0959a8f..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.features.e4.ui/src/org/eclipse/passage/lic/internal/features/e4/ui/FeaturesE4UiProcessor.java b/bundles/org.eclipse.passage.lic.features.e4.ui/src/org/eclipse/passage/lic/internal/features/e4/ui/FeaturesE4UiProcessor.java
deleted file mode 100644
index 7aaca454e..000000000
--- a/bundles/org.eclipse.passage.lic.features.e4.ui/src/org/eclipse/passage/lic/internal/features/e4/ui/FeaturesE4UiProcessor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.lic.internal.features.e4.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.features.edit.FeaturesEditPlugin;
-import org.eclipse.passage.lic.features.model.meta.FeaturesPackage;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.swt.widgets.Display;
-
-public class FeaturesE4UiProcessor {
-
- @Execute
- void process(IEclipseContext context) {
- Display display = context.get(Display.class);
- if (display != null) {
- doRegisterImages();
- }
- }
-
- private void doRegisterImages() {
- LicensingImages.getImageRegistry();
- String pattern = "$nl$/icons/full/obj16/%s"; //$NON-NLS-1$
-
- registerFeatures(pattern);
- }
-
- private void registerFeatures(String pattern) {
- Map paths = new HashMap();
- FeaturesPackage features = FeaturesPackage.eINSTANCE;
- paths.put(features.getName(), String.format(pattern, "feature.png")); //$NON-NLS-1$
- paths.put(features.getFeatureSet().getName(), String.format(pattern, "feature.png")); //$NON-NLS-1$
- paths.put(features.getFeature().getName(), String.format(pattern, "feature.png")); //$NON-NLS-1$
- paths.put(features.getFeatureVersion().getName(), String.format(pattern, "feature.png")); //$NON-NLS-1$
- LicensingImages.declareImages(FeaturesEditPlugin.class, paths);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.lic.features.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.features.model/META-INF/MANIFEST.MF
index db86d9bb1..995eb8557 100644
--- a/bundles/org.eclipse.passage.lic.features.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.features.model/META-INF/MANIFEST.MF
@@ -17,7 +17,7 @@ Export-Package: org.eclipse.passage.lic.features.model.api,
org.eclipse.passage.lic.features.model.impl;x-internal:=true,
org.eclipse.passage.lic.features.model.meta,
org.eclipse.passage.lic.features.model.util,
- org.eclipse.passage.lic.internal.features.model;x-friends:="org.eclipse.passage.loc.dashboard.ui",
+ org.eclipse.passage.lic.internal.features.model;x-internal:=true,
org.eclipse.passage.lic.internal.features.model.util;x-internal:=true
Bundle-ClassPath: .
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.jface/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.jface/META-INF/MANIFEST.MF
index a2fd7329b..a6691b0fd 100644
--- a/bundles/org.eclipse.passage.lic.jface/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.jface/META-INF/MANIFEST.MF
@@ -13,24 +13,17 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0",
org.eclipse.passage.lic.api;bundle-version="0.0.0";visibility:=reexport,
org.eclipse.passage.lic.base;bundle-version="0.0.0";visibility:=reexport,
org.eclipse.passage.lic.equinox;bundle-version="0.0.0"
-Export-Package: org.eclipse.passage.lic.internal.jface.dialogs.licensing;x-friends:="org.eclipse.passage.lic.e4.ui,org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.licenses.ui",
- org.eclipse.passage.lic.jface;x-friends:="org.eclipse.passage.loc.workbench",
+Export-Package: org.eclipse.passage.lic.internal.jface.dialogs.licensing;x-friends:="org.eclipse.passage.lic.e4.ui",
+ org.eclipse.passage.lic.jface;x-internal:=true,
org.eclipse.passage.lic.jface.actions;x-internal:=true,
org.eclipse.passage.lic.jface.resource;
- x-friends:="org.eclipse.passage.loc.dashboard.ui,
- org.eclipse.passage.loc.workbench,
- org.eclipse.passage.loc.users.ui,
- org.eclipse.passage.lic.floating.e4.ui,
- org.eclipse.passage.lic.licenses.e4.ui,
+ x-friends:="org.eclipse.passage.lic.agreements.e4.ui,
org.eclipse.passage.lic.e4.ui,
org.eclipse.passage.lic.features.e4.ui,
+ org.eclipse.passage.lic.floating.e4.ui,
+ org.eclipse.passage.lic.licenses.e4.ui,
org.eclipse.passage.lic.products.e4.ui,
- org.eclipse.passage.lic.users.e4.ui,
- org.eclipse.passage.loc.workbench.emfforms,
- org.eclipse.passage.loc.products.ui,
- org.eclipse.passage.loc.licenses.ui,
- org.eclipse.passage.loc.edit.ui,
- org.eclipse.passage.lic.agreements.e4.ui",
- org.eclipse.passage.lic.jface.widgets;x-friends:="org.eclipse.passage.loc.workbench"
+ org.eclipse.passage.lic.users.e4.ui",
+ org.eclipse.passage.lic.jface.widgets;x-internal:=true
Import-Package: org.slf4j;version="[1.7.0,3.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/.classpath b/bundles/org.eclipse.passage.lic.licenses.e4.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/.project b/bundles/org.eclipse.passage.lic.licenses.e4.ui/.project
deleted file mode 100644
index 7e870f262..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.lic.licenses.e4.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.licenses.e4.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index bfe048666..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.lic.licenses.e4.ui
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.passage.lic.licenses.e4.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.jface;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
- org.eclipse.passage.lic.jface;bundle-version="0.0.0",
- org.eclipse.passage.lic.licenses.edit;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.lic.licenses.e4.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 297749cf2..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LIC Licenses E4 UI
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp and others.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/about.html b/bundles/org.eclipse.passage.lic.licenses.e4.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/build.properties b/bundles/org.eclipse.passage.lic.licenses.e4.ui/build.properties
deleted file mode 100644
index eb681f81d..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2020 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- plugin.xml,\
- about.html
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/plugin.xml b/bundles/org.eclipse.passage.lic.licenses.e4.ui/plugin.xml
deleted file mode 100644
index 55ded24a3..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.licenses.e4.ui/src/org/eclipse/passage/lic/internal/licenses/e4/ui/LicensesE4UiProcessor.java b/bundles/org.eclipse.passage.lic.licenses.e4.ui/src/org/eclipse/passage/lic/internal/licenses/e4/ui/LicensesE4UiProcessor.java
deleted file mode 100644
index 2a5eb51de..000000000
--- a/bundles/org.eclipse.passage.lic.licenses.e4.ui/src/org/eclipse/passage/lic/internal/licenses/e4/ui/LicensesE4UiProcessor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.lic.internal.licenses.e4.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.lic.licenses.edit.LicensesEditPlugin;
-import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage;
-import org.eclipse.swt.widgets.Display;
-
-@SuppressWarnings("restriction")
-public class LicensesE4UiProcessor {
-
- @Execute
- void process(IEclipseContext context) {
- Display display = context.get(Display.class);
- if (display != null) {
- doRegisterImages();
- }
- }
-
- private void doRegisterImages() {
- LicensingImages.getImageRegistry();
- String pattern = "$nl$/icons/full/obj16/%s"; //$NON-NLS-1$
-
- registerLicenses(pattern);
- }
-
- private void registerLicenses(String pattern) {
- Map paths = new HashMap();
- LicensesPackage licenses = LicensesPackage.eINSTANCE;
- paths.put(licenses.getName(), String.format(pattern, "license.png")); //$NON-NLS-1$
- paths.put(licenses.getLicensePlan().getName(), String.format(pattern, "license.png")); //$NON-NLS-1$
- paths.put(licenses.getLicensePlanFeature().getName(), String.format(pattern, "license.png")); //$NON-NLS-1$
- paths.put(licenses.getPersonalLicensePack().getName(), String.format(pattern, "license.png")); //$NON-NLS-1$
- paths.put(licenses.getFloatingLicensePack().getName(), String.format(pattern, "license.png")); //$NON-NLS-1$
- paths.put(licenses.getPersonalFeatureGrant().getName(), String.format(pattern, "license.png")); //$NON-NLS-1$
- LicensingImages.declareImages(LicensesEditPlugin.class, paths);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.lic.licenses.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.licenses.model/META-INF/MANIFEST.MF
index 9db6d2976..2e8451927 100644
--- a/bundles/org.eclipse.passage.lic.licenses.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.licenses.model/META-INF/MANIFEST.MF
@@ -15,7 +15,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0";x-installation:=
org.eclipse.passage.lic.licenses;bundle-version="0.0.0";visibility:=reexport,
org.eclipse.passage.lic.base;bundle-version="0.0.0"
Export-Package: org.eclipse.passage.lic.internal.licenses.convert;x-internal:=true,
- org.eclipse.passage.lic.internal.licenses.model;x-friends:="org.eclipse.passage.lic.licenses.migration,org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.licenses.core",
+ org.eclipse.passage.lic.internal.licenses.model;x-friends:="org.eclipse.passage.lic.licenses.migration",
org.eclipse.passage.lic.internal.licenses.model.signature;x-internal:=true,
org.eclipse.passage.lic.internal.licenses.model.util;x-internal:=true,
org.eclipse.passage.lic.licenses.model.api,
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/.classpath b/bundles/org.eclipse.passage.lic.products.e4.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/.project b/bundles/org.eclipse.passage.lic.products.e4.ui/.project
deleted file mode 100644
index 69cd3fcf6..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.lic.products.e4.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.products.e4.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 21a988f8f..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.lic.products.e4.ui
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.passage.lic.products.e4.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.jface;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
- org.eclipse.passage.lic.jface;bundle-version="0.0.0",
- org.eclipse.passage.lic.products.edit;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.lic.products.e4.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 0d67a48a5..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LIC Products E4 UI
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp and others.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/about.html b/bundles/org.eclipse.passage.lic.products.e4.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/build.properties b/bundles/org.eclipse.passage.lic.products.e4.ui/build.properties
deleted file mode 100644
index eb681f81d..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2020 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- plugin.xml,\
- about.html
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/plugin.xml b/bundles/org.eclipse.passage.lic.products.e4.ui/plugin.xml
deleted file mode 100644
index 1c26eb42f..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.products.e4.ui/src/org/eclipse/passage/lic/internal/products/e4/ui/ProductsE4UiProcessor.java b/bundles/org.eclipse.passage.lic.products.e4.ui/src/org/eclipse/passage/lic/internal/products/e4/ui/ProductsE4UiProcessor.java
deleted file mode 100644
index 15cf11861..000000000
--- a/bundles/org.eclipse.passage.lic.products.e4.ui/src/org/eclipse/passage/lic/internal/products/e4/ui/ProductsE4UiProcessor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.lic.internal.products.e4.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.lic.products.edit.ProductsEditPlugin;
-import org.eclipse.passage.lic.products.model.meta.ProductsPackage;
-import org.eclipse.swt.widgets.Display;
-
-public class ProductsE4UiProcessor {
-
- @Execute
- void process(IEclipseContext context) {
- Display display = context.get(Display.class);
- if (display != null) {
- doRegisterImages();
- }
- }
-
- private void doRegisterImages() {
- LicensingImages.getImageRegistry();
- String pattern = "$nl$/icons/full/obj16/%s"; //$NON-NLS-1$
-
- registerProducts(pattern);
- }
-
- private void registerProducts(String pattern) {
- Map paths = new HashMap();
- ProductsPackage products = ProductsPackage.eINSTANCE;
- paths.put(products.getName(), String.format(pattern, "product.png")); //$NON-NLS-1$
- paths.put(products.getProductLine().getName(), String.format(pattern, "product.png")); //$NON-NLS-1$
- paths.put(products.getProduct().getName(), String.format(pattern, "product.png")); //$NON-NLS-1$
- paths.put(products.getProductVersion().getName(), String.format(pattern, "product.png")); //$NON-NLS-1$
- paths.put(products.getProductVersionFeature().getName(), String.format(pattern, "product.png")); //$NON-NLS-1$
- LicensingImages.declareImages(ProductsEditPlugin.class, paths);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.lic.products.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.products.model/META-INF/MANIFEST.MF
index 05c66c9dd..65f44055f 100644
--- a/bundles/org.eclipse.passage.lic.products.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.products.model/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0";x-installation:=
org.eclipse.emf.ecore.xmi;bundle-version="0.0.0";visibility:=reexport,
org.eclipse.passage.lic.emf;bundle-version="0.0.0",
org.eclipse.passage.lic.products;bundle-version="0.0.0";visibility:=reexport
-Export-Package: org.eclipse.passage.lic.internal.products.model;x-friends:="org.eclipse.passage.loc.dashboard.ui",
+Export-Package: org.eclipse.passage.lic.internal.products.model;x-internal:=true,
org.eclipse.passage.lic.internal.products.model.util;x-internal:=true,
org.eclipse.passage.lic.products.model.api,
org.eclipse.passage.lic.products.model.impl;x-internal:=true,
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/.classpath b/bundles/org.eclipse.passage.lic.users.e4.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/.project b/bundles/org.eclipse.passage.lic.users.e4.ui/.project
deleted file mode 100644
index ba2db05ca..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.lic.users.e4.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.users.e4.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index a2292df39..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.lic.users.e4.ui
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.passage.lic.users.e4.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.jface;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
- org.eclipse.passage.lic.jface;bundle-version="0.0.0",
- org.eclipse.passage.lic.users.edit;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.lic.users.e4.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 86996f014..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LIC Users E4 UI
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp and others.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/about.html b/bundles/org.eclipse.passage.lic.users.e4.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/build.properties b/bundles/org.eclipse.passage.lic.users.e4.ui/build.properties
deleted file mode 100644
index eb681f81d..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2020 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- plugin.xml,\
- about.html
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/plugin.xml b/bundles/org.eclipse.passage.lic.users.e4.ui/plugin.xml
deleted file mode 100644
index e9c43a50e..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.lic.users.e4.ui/src/org/eclipse/passage/lic/internal/users/e4/ui/UsersE4UiProcessor.java b/bundles/org.eclipse.passage.lic.users.e4.ui/src/org/eclipse/passage/lic/internal/users/e4/ui/UsersE4UiProcessor.java
deleted file mode 100644
index 223132035..000000000
--- a/bundles/org.eclipse.passage.lic.users.e4.ui/src/org/eclipse/passage/lic/internal/users/e4/ui/UsersE4UiProcessor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.lic.internal.users.e4.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.lic.users.edit.UsersEditPlugin;
-import org.eclipse.passage.lic.users.model.meta.UsersPackage;
-import org.eclipse.swt.widgets.Display;
-
-public class UsersE4UiProcessor {
-
- @Execute
- void process(IEclipseContext context) {
- Display display = context.get(Display.class);
- if (display != null) {
- doRegisterImages();
- }
- }
-
- private void doRegisterImages() {
- LicensingImages.getImageRegistry();
- String pattern = "$nl$/icons/full/obj16/%s"; //$NON-NLS-1$
-
- registerUsers(pattern);
- }
-
- private void registerUsers(String pattern) {
- Map paths = new HashMap();
- UsersPackage users = UsersPackage.eINSTANCE;
- paths.put(users.getName(), String.format(pattern, "user.png")); //$NON-NLS-1$
- paths.put(users.getUserOrigin().getName(), String.format(pattern, "user.png")); //$NON-NLS-1$
- paths.put(users.getUser().getName(), String.format(pattern, "user.png")); //$NON-NLS-1$
- LicensingImages.declareImages(UsersEditPlugin.class, paths);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.lic.users.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.users.model/META-INF/MANIFEST.MF
index 45ceaf0cf..2a6215298 100644
--- a/bundles/org.eclipse.passage.lic.users.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.passage.lic.users.model/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0";x-installation:=
org.eclipse.emf.ecore.xmi;bundle-version="0.0.0";visibility:=reexport,
org.eclipse.passage.lic.emf;bundle-version="0.0.0",
org.eclipse.passage.lic.users;bundle-version="0.0.0";visibility:=reexport
-Export-Package: org.eclipse.passage.lic.internal.users.model;x-friends:="org.eclipse.passage.loc.dashboard.ui",
+Export-Package: org.eclipse.passage.lic.internal.users.model;x-internal:=true,
org.eclipse.passage.lic.internal.users.model.util;x-internal:=true,
org.eclipse.passage.lic.users.model.api,
org.eclipse.passage.lic.users.model.impl;x-internal:=true,
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/.classpath b/bundles/org.eclipse.passage.loc.agreements.core/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/.project b/bundles/org.eclipse.passage.loc.agreements.core/.project
deleted file mode 100644
index 9d7ad26f3..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.loc.agreements.core
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.agreements.core/META-INF/MANIFEST.MF
deleted file mode 100644
index f051881f3..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.loc.agreements.core
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.passage.loc.agreements.core
-Bundle-Version: 3.1.0.qualifier
-Bundle-Name: %Bundle-Name
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.passage.lic.agreements.model;bundle-version="0.0.0";visibility:=reexport,
- org.eclipse.passage.lic.agreements;bundle-version="0.0.0";visibility:=reexport,
- org.eclipse.passage.lic.emf;bundle-version="0.0.0",
- org.eclipse.passage.lic.equinox;bundle-version="0.0.0",
- org.eclipse.passage.loc.equinox;bundle-version="0.0.0"
-Export-Package: org.eclipse.passage.loc.internal.agreements;
- x-friends:="org.eclipse.passage.loc.agreements.emfforms,
- org.eclipse.passage.loc.agreements.ui,
- org.eclipse.passage.loc.dashboard.ui,
- org.eclipse.passage.loc.licenses.core",
- org.eclipse.passage.loc.internal.agreements.core;x-internal:=true
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/*.xml
-Import-Package: org.osgi.service.event;version="1.0.0"
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index c79557601..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LOC Agreements Core
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementDomainRegistry.xml b/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementDomainRegistry.xml
deleted file mode 100644
index e7700489a..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementDomainRegistry.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementsSelectionCommandAdvisor.xml b/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementsSelectionCommandAdvisor.xml
deleted file mode 100644
index 7eb7b5281..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementsSelectionCommandAdvisor.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/about.html b/bundles/org.eclipse.passage.loc.agreements.core/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/build.properties b/bundles/org.eclipse.passage.loc.agreements.core/build.properties
deleted file mode 100644
index 7a7a6a3c4..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2021 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- about.html
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistry.java b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistry.java
deleted file mode 100644
index fd079e183..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistry.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements;
-
-import java.util.Collection;
-import java.util.Optional;
-
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-
-public interface AgreementRegistry {
-
- Collection groups();
-
- Optional group(String id);
-
- Collection agreements();
-
- Optional agreement(String id);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistryEvents.java b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistryEvents.java
deleted file mode 100644
index 1ca12fa8c..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistryEvents.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements;
-
-import static org.eclipse.passage.loc.internal.api.LicensingEvents.CREATE;
-import static org.eclipse.passage.loc.internal.api.LicensingEvents.DELETE;
-import static org.eclipse.passage.loc.internal.api.LicensingEvents.READ;
-import static org.eclipse.passage.loc.internal.api.LicensingEvents.TOPIC_SEP;
-import static org.eclipse.passage.loc.internal.api.LicensingEvents.UPDATE;
-
-/**
- * Agreements registry events and event topic definitions.
- */
-@SuppressWarnings("restriction")
-public final class AgreementRegistryEvents {
-
- /**
- * Base name of all Agreements events
- */
- public static final String AGREEMENTS_TOPIC_BASE = "org/eclipse/passage/lic/agreements/registry"; //$NON-NLS-1$
-
- /**
- * Base name of all AgreementsGroup events
- */
- public static final String AGREEMENT_GROUP_TOPIC_BASE = AGREEMENTS_TOPIC_BASE + TOPIC_SEP + "AgreementGroup"; //$NON-NLS-1$
-
- /**
- * AgreementsGroup create event
- */
- public static final String AGREEMENT_GROUP_CREATE = AGREEMENT_GROUP_TOPIC_BASE + TOPIC_SEP + CREATE;
-
- /**
- * AgreementsGroup read event
- */
- public static final String AGREEMENT_GROUP_READ = AGREEMENT_GROUP_TOPIC_BASE + TOPIC_SEP + READ;
-
- /**
- * AgreementsGroupupdate event
- */
- public static final String AGREEMENT_GROUP_UPDATE = AGREEMENT_GROUP_TOPIC_BASE + TOPIC_SEP + UPDATE;
-
- /**
- * AgreementsGroupdelete event
- */
- public static final String AGREEMENT_GROUP_DELETE = AGREEMENT_GROUP_TOPIC_BASE + TOPIC_SEP + DELETE;
-
- /**
- * Base name of all Agreement events
- */
- public static final String AGREEMENT_TOPIC_BASE = AGREEMENTS_TOPIC_BASE + TOPIC_SEP + "Agreement"; //$NON-NLS-1$
-
- /**
- * Agreement create event
- */
- public static final String AGREEMENT_CREATE = AGREEMENT_TOPIC_BASE + TOPIC_SEP + CREATE;
-
- /**
- * Agreement read event
- */
- public static final String AGREEMENT_READ = AGREEMENT_TOPIC_BASE + TOPIC_SEP + READ;
-
- /**
- * Agreement update event
- */
- public static final String AGREEMENT_UPDATE = AGREEMENT_TOPIC_BASE + TOPIC_SEP + UPDATE;
-
- /**
- * Agreement delete event
- */
- public static final String AGREEMENT_DELETE = AGREEMENT_TOPIC_BASE + TOPIC_SEP + DELETE;
-
- private AgreementRegistryEvents() {
- // block
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementDomainRegistry.java b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementDomainRegistry.java
deleted file mode 100644
index c2754710e..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementDomainRegistry.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.core;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.lic.internal.agreements.model.util.AgreementsResourceImpl;
-import org.eclipse.passage.lic.internal.equinox.events.EquinoxEvent;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistryEvents;
-import org.eclipse.passage.loc.internal.agreements.core.i18n.AgreementsCoreMessages;
-import org.eclipse.passage.loc.internal.api.OperatorGearSupplier;
-import org.eclipse.passage.loc.internal.api.workspace.Agreements;
-import org.eclipse.passage.loc.internal.api.workspace.KnownResources;
-import org.eclipse.passage.loc.internal.api.workspace.OperatorWorkspace;
-import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle;
-import org.eclipse.passage.loc.internal.emf.DomainContentAdapter;
-import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry;
-import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess;
-import org.eclipse.passage.loc.internal.equinox.BaseDomainRegistry;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.component.annotations.ReferenceCardinality;
-import org.osgi.service.event.EventAdmin;
-
-@SuppressWarnings("restriction")
-@Component(property = { EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME + '=' + AgreementsPackage.eNAME,
- EditingDomainRegistryAccess.PROPERTY_FILE_EXTENSION + '=' + "agreements_xmi" })
-public final class AgreementDomainRegistry extends BaseDomainRegistry
- implements AgreementRegistry, EditingDomainRegistry {
-
- private final Map groups = new HashMap<>();
- private final Map agreements = new HashMap<>();
-
- private final List events = new ArrayList<>();
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY)
- public void bindEventAdmin(EventAdmin admin) {
- this.events.add(admin);
- }
-
- public void unbindEventAdmin(EventAdmin admin) {
- this.events.remove(admin);
- }
-
- @Activate
- public void load(Map properties) {
- super.activate(properties);
- }
-
- @Deactivate
- public void unload(Map properties) {
- agreements.clear();
- groups.clear();
- super.deactivate(properties);
- }
-
- @Override
- @Reference
- public void bindGear(OperatorGearSupplier supplier) {
- super.bindGear(supplier);
- }
-
- @Override
- public void unbindGear(OperatorGearSupplier supplier) {
- super.unbindGear(supplier);
- }
-
- @Override
- public String getFileExtension() {
- return "agreements_xmi"; //$NON-NLS-1$
- }
-
- @Override
- public Class getContentClass() {
- return AgreementGroup.class;
- }
-
- @Override
- public String resolveIdentifier(AgreementGroup content) {
- return content.getIdentifier();
- }
-
- @Override
- public Collection groups() {
- return new ArrayList<>(groups.values());
- }
-
- @Override
- public Optional group(String identifier) {
- return Optional.ofNullable(groups.get(identifier));
- }
-
- @Override
- public Collection agreements() {
- return new ArrayList<>(agreements.values());
- }
-
- public Collection agreements(String id) {
- return group(id)//
- .map(AgreementGroup::getAgreements)//
- .orElseGet(BasicEList::new)//
- .stream().toList();
- }
-
- @Override
- public Optional agreement(String identifier) {
- return Optional.ofNullable(agreements.get(identifier));
- }
-
- @Override
- protected DomainContentAdapter createContentAdapter() {
- return new AgreementsDomainRegistryTracker(this);
- }
-
- public void registerAgreementGroup(AgreementGroup group) {
- AgreementGroup existing = groups.put(group.getIdentifier(), group);
- if ((existing != null) && (existing != group)) {
- String msg = NLS.bind(AgreementsCoreMessages.AgreementDomain_instance_duplication_message, existing, group);
- Platform.getLog(getClass()).warn(msg);
- }
- brush(group);
- events().postEvent(new EquinoxEvent(AgreementRegistryEvents.AGREEMENT_GROUP_CREATE, group).get());
- group.getAgreements().forEach(u -> registerAgreement(u));
- }
-
- private void brush(AgreementGroup group) {
- if (group.getDescription() == null) {
- group.setDescription(""); //$NON-NLS-1$
- }
- }
-
- public void registerAgreement(Agreement agreement) {
- String identifier = agreement.getIdentifier();
- Agreement existing = agreements.put(identifier, agreement);
- if ((existing != null) && (existing != agreement)) {
- String msg = NLS.bind(AgreementsCoreMessages.AgreementDomain_instance_duplication_message, existing,
- agreement);
- Platform.getLog(getClass()).warn(msg);
- }
- events().postEvent(new EquinoxEvent(AgreementRegistryEvents.AGREEMENT_CREATE, agreement).get());
- }
-
- public void unregisterAgreementGroup(String id) {
- AgreementGroup removed = groups.remove(id);
- if (removed != null) {
- events().postEvent(new EquinoxEvent(AgreementRegistryEvents.AGREEMENT_GROUP_DELETE, removed).get());
- removed.getAgreements().forEach(u -> unregisterAgreement(u.getIdentifier()));
- }
- }
-
- public void unregisterAgreement(String id) {
- Agreement removed = agreements.remove(id);
- if (removed != null) {
- events().postEvent(new EquinoxEvent(AgreementRegistryEvents.AGREEMENT_DELETE, removed).get());
- }
- }
-
- private EventAdmin events() {
- return events.stream().findAny().get();
- }
-
- @Override
- public EClass getContentClassifier() {
- return AgreementsPackage.eINSTANCE.getAgreementGroup();
- }
-
- @Override
- public EStructuralFeature getContentIdentifierAttribute() {
- return AgreementsPackage.eINSTANCE.getAgreementGroup_Identifier();
- }
-
- @Override
- public EStructuralFeature getContentNameAttribute() {
- return AgreementsPackage.eINSTANCE.getAgreementGroup_Name();
- }
-
- @Override
- public void registerContent(AgreementGroup content) {
- registerAgreementGroup(content);
- }
-
- @Override
- public void unregisterContent(String identifier) {
- unregisterAgreementGroup(identifier);
- }
-
- @Override
- protected final Resource createResource(URI uri) {
- return new AgreementsResourceImpl(uri);
- }
-
- @Override
- protected boolean emfResource(ResourceHandle handle) {
- return Agreements.xmi.equals(handle.type());
- }
-
- @Override
- protected KnownResources knownResources(OperatorWorkspace workspace) {
- return workspace.agreements();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsDomainRegistryTracker.java b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsDomainRegistryTracker.java
deleted file mode 100644
index fb4e89405..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsDomainRegistryTracker.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.core;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.internal.emf.DomainContentAdapter;
-
-@SuppressWarnings("restriction")
-public class AgreementsDomainRegistryTracker extends DomainContentAdapter {
-
- public AgreementsDomainRegistryTracker(AgreementDomainRegistry registry) {
- super(registry);
- }
-
- @Override
- public void notifyChanged(Notification notification) {
- Object notifier = notification.getNotifier();
- if (notifier instanceof AgreementGroup) {
- AgreementGroup group = (AgreementGroup) notifier;
- switch (notification.getFeatureID(AgreementGroup.class)) {
- case AgreementsPackage.AGREEMENT_GROUP__IDENTIFIER:
- processAgreementGroupIdentifier(group, notification);
- break;
- case AgreementsPackage.AGREEMENT_GROUP__AGREEMENTS:
- processAgreementGroupContent(notification);
- break;
- default:
- break;
- }
- } else if (notifier instanceof Agreement) {
- Agreement agreement = (Agreement) notifier;
- switch (notification.getFeatureID(Agreement.class)) {
- case AgreementsPackage.AGREEMENT__IDENTIFIER:
- processAgreementIdentifier(agreement, notification);
- break;
- default:
- break;
- }
- }
- super.notifyChanged(notification);
- }
-
- protected void processAgreementGroupIdentifier(AgreementGroup group, Notification notification) {
- String old = notification.getOldStringValue();
- switch (notification.getEventType()) {
- case Notification.SET:
- if (old != null) {
- registry.unregisterAgreementGroup(old);
- }
- if (notification.getNewStringValue() != null) {
- registry.registerAgreementGroup(group);
- }
- break;
- default:
- break;
- }
- }
-
- protected void processAgreementGroupContent(Notification notification) {
- Object oldValue = notification.getOldValue();
- Object newValue = notification.getNewValue();
- switch (notification.getEventType()) {
- case Notification.ADD:
- if (newValue instanceof Agreement) {
- Agreement agreement = (Agreement) newValue;
- String identifier = agreement.getIdentifier();
- if (identifier != null) {
- registry.registerAgreement(agreement);
- }
- }
- break;
- case Notification.REMOVE:
- if (oldValue instanceof Agreement) {
- String identifier = ((Agreement) oldValue).getIdentifier();
- if (identifier != null) {
- registry.unregisterAgreement(identifier);
- }
- }
- break;
- default:
- break;
- }
- }
-
- protected void processAgreementIdentifier(Agreement agreement, Notification notification) {
- String oldValue = notification.getOldStringValue();
- String newValue = notification.getNewStringValue();
- switch (notification.getEventType()) {
- case Notification.SET:
- if (oldValue != null) {
- registry.unregisterAgreement(oldValue);
- }
- if (newValue != null) {
- registry.registerAgreement(agreement);
- }
- break;
- default:
- break;
- }
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsSelectionCommandAdvisor.java b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsSelectionCommandAdvisor.java
deleted file mode 100644
index 69e0863a5..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsSelectionCommandAdvisor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.core;
-
-import java.util.Collections;
-
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.agreements.core.i18n.AgreementsCoreMessages;
-import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess;
-import org.eclipse.passage.loc.internal.emf.SelectionCommandAdvisor;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-@SuppressWarnings("restriction")
-@Component(property = { EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME + '=' + AgreementsPackage.eNAME })
-public class AgreementsSelectionCommandAdvisor implements SelectionCommandAdvisor {
-
- private AgreementRegistry registry;
-
- @Reference
- public void bindDomainRegistry(AgreementRegistry dr) {
- this.registry = dr;
- }
-
- public void unbindDomainRegistry(AgreementRegistry dr) {
- this.registry = null;
- }
-
- @Override
- public String getSelectionTitle(String classifier) {
- if (AgreementsPackage.eINSTANCE.getAgreementGroup().getName().equals(classifier)) {
- return AgreementsCoreMessages.AgreementsSelectionCommandAdvisor_select_agreement_group;
- }
- if (AgreementsPackage.eINSTANCE.getAgreement().getName().equals(classifier)) {
- return AgreementsCoreMessages.AgreementsSelectionCommandAdvisor_select_agreement;
- }
- return null;
- }
-
- @Override
- public Iterable> getSelectionInput(String classifier) {
- if (registry == null) {
- return Collections.emptyList();
- }
- if (AgreementsPackage.eINSTANCE.getAgreementGroup().getName().equals(classifier)) {
- return registry.groups();
- }
- if (AgreementsPackage.eINSTANCE.getAgreement().getName().equals(classifier)) {
- return registry.agreements();
- }
- return Collections.emptyList();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.java b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.java
deleted file mode 100644
index 85f8ace6c..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.core.i18n;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class AgreementsCoreMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.agreements.core.i18n.AgreementsCoreMessages"; //$NON-NLS-1$
-
- public static String AgreementDomain_instance_duplication_message;
- public static String AgreementsSelectionCommandAdvisor_select_agreement;
- public static String AgreementsSelectionCommandAdvisor_select_agreement_group;
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, AgreementsCoreMessages.class);
- }
-
- private AgreementsCoreMessages() {
- }
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.properties b/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.properties
deleted file mode 100644
index ab6e57607..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2021 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-AgreementDomain_instance_duplication_message=Duplication of Agreement instances. The existing instance: \"{0}\" will be replaced by: \"{1}\"
-AgreementsSelectionCommandAdvisor_select_agreement_group=Select Agreement Group
-AgreementsSelectionCommandAdvisor_select_agreement=Select Agreement
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/.classpath b/bundles/org.eclipse.passage.loc.agreements.emfforms/.classpath
deleted file mode 100644
index 1a821310b..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/.project b/bundles/org.eclipse.passage.loc.agreements.emfforms/.project
deleted file mode 100644
index 4a855c5cf..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.loc.agreements.emfforms
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.agreements.emfforms/META-INF/MANIFEST.MF
deleted file mode 100644
index 91a939012..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,38 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.loc.agreements.emfforms
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.passage.loc.agreements.emfforms;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Name: %Bundle-Name
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.core.databinding;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.ui.di;bundle-version="0.0.0",
- org.eclipse.e4.ui.model.workbench;bundle-version="0.0.0",
- org.eclipse.emf.databinding;bundle-version="0.0.0",
- org.eclipse.emf.ecp.edit.swt;bundle-version="0.0.0",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="0.0.0",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="0.0.0",
- org.eclipse.emf.ecp.view.model.common;bundle-version="0.0.0",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="0.0.0",
- org.eclipse.emf.ecp.view.template.model;bundle-version="0.0.0",
- org.eclipse.emf.edit;bundle-version="0.0.0",
- org.eclipse.emfforms.swt.core.di;bundle-version="0.0.0",
- org.eclipse.emfforms.swt.core;bundle-version="0.0.0",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="0.0.0",
- org.eclipse.jface.databinding;bundle-version="0.0.0",
- org.eclipse.passage.lic.emf;bundle-version="0.0.0",
- org.eclipse.passage.lic.features.model;bundle-version="0.0.0",
- org.eclipse.passage.lic.jface;bundle-version="0.0.0",
- org.eclipse.passage.loc.agreements.core;bundle-version="0.0.0",
- org.eclipse.passage.loc.agreements.ui;bundle-version="0.0.0",
- org.eclipse.passage.loc.equinox;bundle-version="0.0.0",
- org.eclipse.passage.loc.workbench.emfforms;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Export-Package: org.eclipse.passage.loc.agreements.emfforms.parts;x-internal:=true,
- org.eclipse.passage.loc.agreements.emfforms.renderers;x-friends:="org.eclipse.passage.loc.features.emfforms"
-Service-Component: OSGI-INF/*.xml
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 7d66f1ac9..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LOC Agreements EMF Forms
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementFileRendererService.xml b/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementFileRendererService.xml
deleted file mode 100644
index 994b751d2..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementFileRendererService.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementGroupIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementGroupIdentifierRendererService.xml
deleted file mode 100644
index 678ac5f30..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementGroupIdentifierRendererService.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementsIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementsIdentifierRendererService.xml
deleted file mode 100644
index 2dd6bc479..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementsIdentifierRendererService.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/about.html b/bundles/org.eclipse.passage.loc.agreements.emfforms/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/build.properties b/bundles/org.eclipse.passage.loc.agreements.emfforms/build.properties
deleted file mode 100644
index 1e33d0692..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2021 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- OSGI-INF/,\
- fragment.e4xmi,\
- about.html
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/fragment.e4xmi b/bundles/org.eclipse.passage.loc.agreements.emfforms/fragment.e4xmi
deleted file mode 100644
index 074925085..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/fragment.e4xmi
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/plugin.xml b/bundles/org.eclipse.passage.loc.agreements.emfforms/plugin.xml
deleted file mode 100644
index 89d59dc0d..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsCreateElementCallback.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsCreateElementCallback.java
deleted file mode 100644
index 746970128..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsCreateElementCallback.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.parts;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
-
-public class AgreementsCreateElementCallback implements CreateElementCallback {
-
- @Override
- public void initElement(EObject parent, EReference reference, EObject agreement) {
- }
-
- @Override
- public boolean beforeCreateElement(Object newElement) {
- return true;
- }
-
- @Override
- public void afterCreateElement(Object newElement) {
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsDetailsPart.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsDetailsPart.java
deleted file mode 100644
index c7f62d338..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsDetailsPart.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.parts;
-
-import javax.inject.Inject;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.di.UIEventTopic;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
-import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistryEvents;
-import org.eclipse.passage.loc.workbench.emfforms.parts.DetailsView;
-
-public class AgreementsDetailsPart extends DetailsView {
-
- @Inject
- public AgreementsDetailsPart(MPart part, ESelectionService selectionService) {
- super(part, selectionService);
- }
-
- @Inject
- @Optional
- public void showFeatureSet(@UIEventTopic(AgreementRegistryEvents.AGREEMENT_GROUP_CREATE) AgreementGroup input,
- IEclipseContext context) {
- show(input, context);
- }
-
- @Override
- protected CreateElementCallback getCreateElementCallback() {
- return new AgreementsCreateElementCallback();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRenderer.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRenderer.java
deleted file mode 100644
index 15bf368c4..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRenderer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import java.io.File;
-import java.nio.file.Files;
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
-import org.eclipse.passage.loc.internal.equinox.AgreementsService;
-
-@SuppressWarnings("restriction")
-public final class AgreementFileRenderer extends BaseAgreementFileRenderer {
-
- @Inject
- public AgreementFileRenderer(VControl element, ViewModelContext context, ReportService report,
- EMFFormsDatabinding databinding, EMFFormsLabelProvider labeling, VTViewTemplateProvider template) {
- super(element, context, report, databinding, labeling, template);
- }
-
- @Override
- protected Optional locatedAgreementFile() {
- return new LocatedAgreementFile().get();
- }
-
- @Override
- protected String residentAgreementResource(File file) throws Exception {
- String name = file.getName();
- new AgreementsService().get().located(name, getViewModelContext().getDomainModel())
- .write(Files.readAllBytes(file.toPath()));
- return name;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRendererService.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRendererService.java
deleted file mode 100644
index 0764156bb..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRendererService.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.StructuredFeatureRendererService;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-@Component
-public class AgreementFileRendererService extends StructuredFeatureRendererService
- implements EMFFormsDIRendererService {
-
- public AgreementFileRendererService() {
- super(AgreementFileRenderer.class, AgreementsPackage.eINSTANCE.getAgreement_File());
- }
-
- @Reference
- @Override
- public void bindEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
- super.bindEMFFormsDatabinding(databindingService);
- }
-
- @Override
- public void unbindEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
- super.unbindEMFFormsDatabinding(databindingService);
- }
-
- @Reference
- @Override
- public void bindReportService(ReportService reportService) {
- super.bindReportService(reportService);
- }
-
- @Override
- public void unbindReportService(ReportService reportService) {
- super.unbindReportService(reportService);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFormat.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFormat.java
deleted file mode 100644
index cea2f9d7d..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFormat.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Supplier;
-
-final class AgreementFormat {
-
- private final String extention;
- private final String description;
- private final String mime;
-
- AgreementFormat(String name, String extention, String mime) {
- this.extention = name;
- this.description = extention;
- this.mime = mime;
- }
-
- String extention() {
- return extention;
- }
-
- String description() {
- return description;
- }
-
- String name() {
- return '*' + extention;
- }
-
- String mime() {
- return mime;
- }
-
- static class Supported implements Supplier> {
- // TODO: get rid of the code in constructor: use CashingFunction from
- // ru.arsysop.lang
- private final List supported = Arrays.asList(//
- new AgreementFormat(".txt", "*.txt", "text/plain") //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
- );
-
- @Override
- public List get() {
- return supported;
- }
-
- public Optional forFile(String name) {
- return supported.stream()//
- .filter(format -> name.endsWith(format.extention))//
- .findAny();
- }
-
- }
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementGroupIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementGroupIdentifierRendererService.java
deleted file mode 100644
index 38af1a39e..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementGroupIdentifierRendererService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.StructuredFeatureRendererService;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.ValidatedTextRenderer;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-@Component
-public class AgreementGroupIdentifierRendererService extends StructuredFeatureRendererService
- implements EMFFormsDIRendererService {
-
- public AgreementGroupIdentifierRendererService() {
- super(ValidatedTextRenderer.class, AgreementsPackage.eINSTANCE.getAgreementGroup_Identifier());
- }
-
- @Reference
- @Override
- public void bindEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
- super.bindEMFFormsDatabinding(databindingService);
- }
-
- @Override
- public void unbindEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
- super.unbindEMFFormsDatabinding(databindingService);
- }
-
- @Reference
- @Override
- public void bindReportService(ReportService reportService) {
- super.bindReportService(reportService);
- }
-
- @Override
- public void unbindReportService(ReportService reportService) {
- super.unbindReportService(reportService);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementIdentifierRenderer.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementIdentifierRenderer.java
deleted file mode 100644
index 941fc172a..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementIdentifierRenderer.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
-import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.loc.agreements.ui.SelectedAgreement;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.TextWithButtonRenderer;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class AgreementIdentifierRenderer extends TextWithButtonRenderer {
-
- private static final String IDENTIFIER_EMPTY = ""; //$NON-NLS-1$
-
- private final AgreementRegistry registry;
-
- @Inject
- public AgreementIdentifierRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
- EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
- VTViewTemplateProvider vtViewTemplateProvider) {
- super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
- registry = viewContext.getService(AgreementRegistry.class);
- }
-
- @Override
- protected Control createSWTControl(Composite parent) {
- Control control = super.createSWTControl(parent);
- text.setEditable(true);
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- selectIdentifier();
- }
- });
-
- return control;
- }
-
- @Override
- protected String getUnsetText() {
- return IDENTIFIER_EMPTY;
- }
-
- protected void selectIdentifier() {
- Shell shell = Display.getDefault().getActiveShell();
- Optional initial = Optional.empty();
- try {
- Object value = getModelValue().getValue();
- if (value instanceof String) {
- String id = (String) value;
- initial = registry.agreement(id);
- }
- } catch (DatabindingFailedException e) {
- getReportService().report(new DatabindingFailedReport(e));
- }
- Optional descriptor = new SelectedAgreement(shell, registry, initial).get();
- if (descriptor.isPresent()) {
- String identifier = descriptor.get().getIdentifier();
- if (identifier != null) {
- text.setText(identifier);
- }
- }
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementsIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementsIdentifierRendererService.java
deleted file mode 100644
index 2006b0663..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementsIdentifierRendererService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.StructuredFeatureRendererService;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.ValidatedTextRenderer;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-@Component
-public class AgreementsIdentifierRendererService extends StructuredFeatureRendererService
- implements EMFFormsDIRendererService {
-
- public AgreementsIdentifierRendererService() {
- super(ValidatedTextRenderer.class, AgreementsPackage.eINSTANCE.getAgreement_Identifier());
- }
-
- @Reference
- @Override
- public void bindEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
- super.bindEMFFormsDatabinding(databindingService);
- }
-
- @Override
- public void unbindEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
- super.unbindEMFFormsDatabinding(databindingService);
- }
-
- @Reference
- @Override
- public void bindReportService(ReportService reportService) {
- super.bindReportService(reportService);
- }
-
- @Override
- public void unbindReportService(ReportService reportService) {
- super.unbindReportService(reportService);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/BaseAgreementFileRenderer.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/BaseAgreementFileRenderer.java
deleted file mode 100644
index c6d35024e..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/BaseAgreementFileRenderer.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import java.io.File;
-import java.util.Optional;
-
-import org.eclipse.core.databinding.observable.IDecoratingObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
-import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
-import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.loc.workbench.emfforms.renderers.TextWithButtonRenderer;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- *
- * TODO:
- * (1) validity: Workspace.Agreements must report existence for content
- * file denoted by [file] attribute
- * (2) rename: there should be a way to rename
- * content file
- *
- */
-public abstract class BaseAgreementFileRenderer extends TextWithButtonRenderer {
-
- protected BaseAgreementFileRenderer(VControl element, ViewModelContext context, ReportService report,
- EMFFormsDatabinding databinding, EMFFormsLabelProvider labeling, VTViewTemplateProvider template) {
- super(element, context, report, databinding, labeling, template);
- }
-
- @Override
- protected final Control createSWTControl(Composite parent) {
- Control control = super.createSWTControl(parent);
- text.setEditable(false);
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- locateAgreementContentFile();
- }
- });
- button.setText("Agreement Content File..."); //$NON-NLS-1$
- return control;
- }
-
- @Override
- protected final String getUnsetText() {
- return ""; //$NON-NLS-1$
- }
-
- protected final void locateAgreementContentFile() {
- Optional file = locatedAgreementFile();
- if (file.isEmpty()) {
- return;
- }
- try {
- reflect(residentAgreementResource(file.get()));
- } catch (Exception e) {
- getReportService().report(new RenderingFailedReport(e));
- }
- }
-
- protected abstract Optional locatedAgreementFile();
-
- protected abstract String residentAgreementResource(File file) throws Exception;
-
- private void reflect(String name) {
- if (definedName().orElse("").equals(name)) { //$NON-NLS-1$
- return;
- }
- reflectFileName(name);
- reflectMimeType(name);
- }
-
- private void reflectFileName(String name) {
- text.setText(name);
- }
-
- private void reflectMimeType(String name) {
- Optional format = new AgreementFormat.Supported().forFile(name);
- if (format.isEmpty()) {
- return; // cannot assist for not supported file types
- }
- agreement().ifPresent(agreement -> agreement.setMime(format.get().mime()));
- }
-
- private Optional definedName() {
- try {
- Object value = getModelValue().getValue();
- if (!String.class.isInstance(value)) {
- return Optional.empty();
- }
- String name = (String) value;
- return Optional.of(name);
- } catch (DatabindingFailedException e) {
- return Optional.empty();
- }
- }
-
- private Optional agreement() {
- try {
- IObservableValue> value = getModelValue();
- if (!IDecoratingObservable.class.isInstance(value)) {
- return Optional.empty();
- }
- IObservable decorated = ((IDecoratingObservable) value).getDecorated();
- if (!IObserving.class.isInstance(decorated)) {
- return Optional.empty();
- }
- Object source = ((IObserving) decorated).getObserved();
- if (!Agreement.class.isInstance(source)) {
- return Optional.empty();
- }
- return Optional.of((Agreement) source);
- } catch (DatabindingFailedException e) {
- getReportService().report(new DatabindingFailedReport(e));
- return Optional.empty();
- }
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/LocatedAgreementFile.java b/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/LocatedAgreementFile.java
deleted file mode 100644
index c8cdd77ea..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/LocatedAgreementFile.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.emfforms.renderers;
-
-import java.io.File;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-
-public final class LocatedAgreementFile implements Supplier> {
-
- private final Shell shell;
- private final Optional residence;
-
- public LocatedAgreementFile(Shell shell, String residence) {
- this(shell, Optional.of(residence));
- }
-
- public LocatedAgreementFile(String residence) {
- this(Display.getDefault().getActiveShell(), residence);
- }
-
- public LocatedAgreementFile() {
- this(Display.getDefault().getActiveShell(), Optional.empty());
- }
-
- private LocatedAgreementFile(Shell shell, Optional residence) {
- this.shell = shell;
- this.residence = residence;
- }
-
- @Override
- public Optional get() {
- FileDialog dialog = new FileDialog(shell);
- residence.ifPresent(dialog::setFilterPath);
- List formats = new AgreementFormat.Supported().get();
- dialog.setText("Point an agreement content file"); //$NON-NLS-1$
- dialog.setFilterExtensions(filters(formats, AgreementFormat::description));
- dialog.setFilterNames(filters(formats, AgreementFormat::description));
- return file(Optional.ofNullable(dialog.open()));
- }
-
- private String[] filters(List all, Function aspect) {
- return all.stream()//
- .map(aspect)//
- .collect(Collectors.toList())//
- .toArray(new String[0]);
- }
-
- private Optional file(Optional path) {
- if (path.isEmpty()) {
- return Optional.empty();
- }
- File file = new File(path.get());
- if (!file.exists()) {
- return Optional.empty();
- }
- if (!file.isFile()) {
- return Optional.empty();
- }
- return Optional.of(file);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/.classpath b/bundles/org.eclipse.passage.loc.agreements.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/.project b/bundles/org.eclipse.passage.loc.agreements.ui/.project
deleted file mode 100644
index f29cb9189..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/.project
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
- org.eclipse.passage.loc.agreements.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.ds.core.builder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.agreements.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 719109de3..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,32 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.loc.agreements.ui
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-SymbolicName: org.eclipse.passage.loc.agreements.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.core.di.annotations;bundle-version="0.0.0",
- org.eclipse.e4.core.di;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.ui.di;bundle-version="0.0.0",
- org.eclipse.e4.ui.model.workbench;bundle-version="0.0.0",
- org.eclipse.e4.ui.services;bundle-version="0.0.0",
- org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
- org.eclipse.jface;bundle-version="0.0.0",
- org.eclipse.passage.lic.emf;bundle-version="0.5.200",
- org.eclipse.passage.lic.jface;bundle-version="0.6.100",
- org.eclipse.passage.loc.api;bundle-version="0.6.0",
- org.eclipse.passage.loc.workbench;bundle-version="0.0.0",
- org.eclipse.passage.lic.agreements.model;bundle-version="0.0.0",
- org.eclipse.passage.loc.agreements.core;bundle-version="0.0.0"
-Import-Package: javax.inject;version="1.0.0"
-Export-Package: org.eclipse.passage.loc.agreements.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.features.ui,org.eclipse.passage.loc.agreements.emfforms",
- org.eclipse.passage.loc.agreements.ui.handlers;x-internal:=true,
- org.eclipse.passage.loc.internal.agreements.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui"
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/org.eclipse.passage.loc.internal.agreements.ui.AgreementsInstanceSupply.xml
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 5fb9ea103..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LOC Agreements UI
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/org.eclipse.passage.loc.internal.agreements.ui.AgreementsInstanceSupply.xml b/bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/org.eclipse.passage.loc.internal.agreements.ui.AgreementsInstanceSupply.xml
deleted file mode 100644
index 205d2796c..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/org.eclipse.passage.loc.internal.agreements.ui.AgreementsInstanceSupply.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/about.html b/bundles/org.eclipse.passage.loc.agreements.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/build.properties b/bundles/org.eclipse.passage.loc.agreements.ui/build.properties
deleted file mode 100644
index b95a47714..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2021 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- fragment.e4xmi,\
- plugin.xml,\
- about.html
-source.. = src/
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.agreements.ui/fragment.e4xmi
deleted file mode 100644
index 2aba6d763..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/fragment.e4xmi
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FORCE_TEXT
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/plugin.xml b/bundles/org.eclipse.passage.loc.agreements.ui/plugin.xml
deleted file mode 100644
index 89d59dc0d..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/AgreementsUi.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/AgreementsUi.java
deleted file mode 100644
index 68df6b721..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/AgreementsUi.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.ui;
-
-public interface AgreementsUi {
-
- String BUNDLE_SYMBOLIC_NAME = "org.eclipse.passage.loc.agreements.ui"; //$NON-NLS-1$
-
- String PERSPECTIVE_MAIN = BUNDLE_SYMBOLIC_NAME + '.' + "perspective.main"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/SelectedAgreement.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/SelectedAgreement.java
deleted file mode 100644
index 30703c622..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/SelectedAgreement.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.ui;
-
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.agreements.ui.i18n.AgreementsUiMessages;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-import org.eclipse.swt.widgets.Shell;
-
-public final class SelectedAgreement implements Supplier> {
-
- private final Shell shell;
- private final AgreementRegistry registry;
- private final Optional initial;
-
- public SelectedAgreement(Shell shell, AgreementRegistry registry, Optional initial) {
- this.shell = shell;
- this.registry = registry;
- this.initial = initial;
- }
-
- @Override
- public Optional get() {
- return Optional.ofNullable(//
- LocWokbench.selectClassifier(//
- shell, //
- AgreementsPackage.eINSTANCE.getAgreement().getName(), //
- AgreementsUiMessages.AgreementsUi_select_agreement, //
- registry.agreements(), //
- initial, //
- Agreement.class)//
- );
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/CreateAgreementsGroupHandler.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/CreateAgreementsGroupHandler.java
deleted file mode 100644
index bf38e1745..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/CreateAgreementsGroupHandler.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.ui.handlers;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.agreements.ui.AgreementsUi;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-
-public class CreateAgreementsGroupHandler {
-
- @Execute
- public void execute(IEclipseContext context) {
- LocWokbench.createDomainResource(context, AgreementsPackage.eNAME, AgreementsUi.PERSPECTIVE_MAIN);
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/LoadAgreementsGroupHandler.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/LoadAgreementsGroupHandler.java
deleted file mode 100644
index 07f9cdb0d..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/LoadAgreementsGroupHandler.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.agreements.ui.handlers;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.loc.agreements.ui.AgreementsUi;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-
-public class LoadAgreementsGroupHandler {
-
- @Execute
- public void execute(IEclipseContext eclipseContext) {
- LocWokbench.loadDomainResource(eclipseContext, AgreementsPackage.eNAME, AgreementsUi.PERSPECTIVE_MAIN);
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/AgreementsInstanceSupply.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/AgreementsInstanceSupply.java
deleted file mode 100644
index ac6fab654..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/AgreementsInstanceSupply.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.ui;
-
-import java.util.Optional;
-
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.api.ClassSupply;
-import org.eclipse.passage.loc.internal.api.InstanceSupply;
-import org.osgi.service.component.annotations.Component;
-
-@SuppressWarnings("restriction")
-@Component
-public final class AgreementsInstanceSupply implements ClassSupply {
-
- @Override
- public Optional> find(Class> clazz, MandatoryService context) {
- if (AgreementGroup.class.isAssignableFrom(clazz)) {
- return Optional.of(new SupplyAgreementsGroup(context));
- }
- return Optional.empty();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreement.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreement.java
deleted file mode 100644
index 96705698f..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreement.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.ui;
-
-import java.util.ArrayList;
-import java.util.function.Supplier;
-
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.agreements.ui.i18n.AgreementsUiMessages;
-import org.eclipse.passage.loc.internal.workbench.SelectRequest;
-import org.eclipse.passage.loc.internal.workbench.SupplySelectRequest;
-import org.eclipse.passage.loc.jface.dialogs.Appearance;
-
-/**
- * Creates {@link SelectRequest} for {@link AgreementGroupDescriptor} from the
- * given {@link MandatoryService}.
- *
- */
-@SuppressWarnings("restriction")
-public final class SelectAgreement extends SupplySelectRequest {
-
- public SelectAgreement(MandatoryService context) {
- super(context);
- }
-
- @Override
- public SelectRequest get() {
- return new SelectRequest<>(Agreement.class, domain(), input(), appearance());
- }
-
- private Supplier> input() {
- return () -> new ArrayList<>(context.get(AgreementRegistry.class).agreements());
- }
-
- private Appearance appearance() {
- return new Appearance(AgreementsUiMessages.SelectAgreement_title, //
- () -> LicensingImages.getImage(AgreementsPackage.eINSTANCE.getAgreement().getName()), labels());
- }
-
- private String domain() {
- return AgreementsPackage.eNAME;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreementsGroup.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreementsGroup.java
deleted file mode 100644
index d6c7516d1..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreementsGroup.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.ui;
-
-import java.util.ArrayList;
-import java.util.function.Supplier;
-
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.agreements.ui.i18n.AgreementsUiMessages;
-import org.eclipse.passage.loc.internal.workbench.SelectRequest;
-import org.eclipse.passage.loc.internal.workbench.SupplySelectRequest;
-import org.eclipse.passage.loc.jface.dialogs.Appearance;
-
-/**
- * Creates {@link SelectRequest} for {@link AgreementGroupDescriptor} from the
- * given {@link MandatoryService}.
- *
- */
-@SuppressWarnings("restriction")
-public final class SelectAgreementsGroup extends SupplySelectRequest {
-
- public SelectAgreementsGroup(MandatoryService context) {
- super(context);
- }
-
- @Override
- public SelectRequest get() {
- return new SelectRequest<>(AgreementGroup.class, domain(), input(), appearance());
- }
-
- private Supplier> input() {
- return () -> new ArrayList<>(context.get(AgreementRegistry.class).groups());
- }
-
- private Appearance appearance() {
- return new Appearance(AgreementsUiMessages.SelectAgreementGroup_title, //
- () -> LicensingImages.getImage(AgreementsPackage.eINSTANCE.getAgreementGroup().getName()), labels());
- }
-
- private String domain() {
- return AgreementsPackage.eNAME;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SupplyAgreementsGroup.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SupplyAgreementsGroup.java
deleted file mode 100644
index 005d18371..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SupplyAgreementsGroup.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.ui;
-
-import java.util.Optional;
-
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.api.InstanceSupply;
-import org.eclipse.passage.loc.internal.workbench.SelectRoot;
-
-@SuppressWarnings("restriction")
-public final class SupplyAgreementsGroup implements InstanceSupply {
-
- private final MandatoryService context;
-
- public SupplyAgreementsGroup(MandatoryService context) {
- this.context = context;
- }
-
- @Override
- public Optional supply() {
- return new SelectRoot<>(new SelectAgreementsGroup(context).get(), context).get();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.java b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.java
deleted file mode 100644
index 8bb46a8cc..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.agreements.ui.i18n;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class AgreementsUiMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.agreements.ui.i18n.AgreementsUiMessages"; //$NON-NLS-1$
-
- public static String ExportCustomersHandler_unavailableMessage;
- public static String ExportCustomersHandler_unavailableTitle;
- public static String SelectAgreement_title;
- public static String SelectAgreementGroup_title;
- public static String AgreementsUi_select_agreement;
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, AgreementsUiMessages.class);
- }
-
- private AgreementsUiMessages() {
- }
-}
diff --git a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.properties b/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.properties
deleted file mode 100644
index 3033cab3b..000000000
--- a/bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2021 ArSysOp
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-ExportCustomersHandler_unavailableTitle=Export is unavailable
-ExportCustomersHandler_unavailableMessage=Severe configuration error: no implementation for {0} service found
-SelectAgreement_title=Select Agreement
-SelectAgreementGroup_title=Select Agreement Group
-AgreementsUi_select_agreement=Select Agreement
diff --git a/bundles/org.eclipse.passage.loc.api/.classpath b/bundles/org.eclipse.passage.loc.api/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.loc.api/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.api/.project b/bundles/org.eclipse.passage.loc.api/.project
deleted file mode 100644
index d66476cb1..000000000
--- a/bundles/org.eclipse.passage.loc.api/.project
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- org.eclipse.passage.loc.api
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF
deleted file mode 100644
index 76181323b..000000000
--- a/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,48 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.loc.api
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.passage.loc.api
-Bundle-Version: 3.1.0.qualifier
-Bundle-Name: %Bundle-Name
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Export-Package: org.eclipse.passage.loc.internal.api;
- x-friends:="org.eclipse.passage.loc.workbench,
- org.eclipse.passage.loc.licenses.ui,
- org.eclipse.passage.loc.users.ui,
- org.eclipse.passage.loc.products.ui,
- org.eclipse.passage.loc.dashboard.ui,
- org.eclipse.passage.loc.licenses.core,
- org.eclipse.passage.loc.products.core,
- org.eclipse.passage.loc.features.core,
- org.eclipse.passage.loc.users.core,
- org.eclipse.passage.loc.operator.gear,
- org.eclipse.passage.loc.products.emfforms",
- org.eclipse.passage.loc.internal.api.workspace;
- x-friends:="org.eclipse.passage.loc.workspace,
- org.eclipse.passage.loc.store,
- org.eclipse.passage.loc.features.core,
- org.eclipse.passage.loc.users.core,
- org.eclipse.passage.loc.products.core,
- org.eclipse.passage.loc.licenses.core,
- org.eclipse.passage.loc.products.emfforms",
- org.eclipse.passage.loc.internal.emf;
- x-friends:="org.eclipse.passage.loc.licenses.core,
- org.eclipse.passage.loc.edit.ui,
- org.eclipse.passage.loc.products.core,
- org.eclipse.passage.loc.features.core,
- org.eclipse.passage.loc.users.core,
- org.eclipse.passage.loc.workbench,
- org.eclipse.passage.loc.dashboard.ui"
-Require-Bundle: org.eclipse.emf.edit;bundle-version="0.0.0";visibility:=reexport,
- org.eclipse.passage.lic.base;bundle-version="0.0.0",
- org.eclipse.passage.lic.emf;bundle-version="0.0.0",
- org.eclipse.passage.lic.licenses.model;bundle-version="0.0.0",
- org.eclipse.passage.lic.products.model;bundle-version="0.0.0";visibility:=reexport,
- org.eclipse.passage.lic.users.model;bundle-version="0.0.0"
-Bundle-ActivationPolicy: lazy
-Provide-Capability: licensing.feature;licensing.feature="org.eclipse.passage.loc.operator.issue.personal";version="3.1.0";name="Issue Personal License";level="warn";provider="Eclipse Passage",
- licensing.feature;licensing.feature="org.eclipse.passage.loc.operator.issue.floating";version="3.1.0";name="Issue Floating License";level="warn";provider="Eclipse Passage",
- licensing.feature;licensing.feature="org.eclipse.passage.loc.operator.issue.personal.full";version="3.1.0";name="Issue Personal License (Professional)";level="error";provider="Eclipse Passage",
- licensing.feature;licensing.feature="org.eclipse.passage.loc.operator.issue.floating.full";version="3.1.0";name="Issue Floating License (Professional)";level="error";provider="Eclipse Passage"
diff --git a/bundles/org.eclipse.passage.loc.api/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.api/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index d06d88c2b..000000000
--- a/bundles/org.eclipse.passage.loc.api/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LOC API
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp and others.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.loc.api/about.html b/bundles/org.eclipse.passage.loc.api/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.loc.api/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.api/build.properties b/bundles/org.eclipse.passage.loc.api/build.properties
deleted file mode 100644
index 341338601..000000000
--- a/bundles/org.eclipse.passage.loc.api/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2020 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- about.html
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ClassSupply.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ClassSupply.java
deleted file mode 100644
index bf9f91f36..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ClassSupply.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Optional;
-
-import org.eclipse.passage.lic.api.MandatoryService;
-
-/**
- *
- * Searches for the instance supply for a given java type
- *
- */
-public interface ClassSupply {
-
- Optional> find(Class> clazz, MandatoryService context);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposableClassSupply.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposableClassSupply.java
deleted file mode 100644
index fea984929..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposableClassSupply.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-/**
- * Allows to compose class supply for different domains
- *
- */
-public interface ComposableClassSupply extends ClassSupply {
-
- /**
- * Adds domain-specific class supply fragment to consider during search
- *
- * @param fragment the domain-specific class supply, must not be
- * null
- */
- void consider(ClassSupply fragment);
-
- /**
- * Removes domain-specific class supply fragment from consideration
- *
- * @param fragment the domain-specific class supply, must not be
- * null
- */
- void forget(ClassSupply fragment);
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposedClassSupply.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposedClassSupply.java
deleted file mode 100644
index f9d17c464..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposedClassSupply.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.LinkedHashSet;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-
-import org.eclipse.passage.lic.api.MandatoryService;
-
-/**
- * Creates composed class supply that is suitable for dynamic environment
- *
- */
-public final class ComposedClassSupply implements ComposableClassSupply {
-
- private final Set registry;
-
- public ComposedClassSupply() {
- registry = new LinkedHashSet<>();
- }
-
- @Override
- public Optional> find(Class> clazz, MandatoryService context) {
- for (ClassSupply supply : registry) {
- Optional> find = supply.find(clazz, context);
- if (find.isPresent()) {
- return Optional.of(find.get());
- }
- }
- return Optional.empty();
- }
-
- @Override
- public void consider(ClassSupply fragment) {
- Objects.requireNonNull(fragment);
- registry.add(fragment);
- }
-
- @Override
- public void forget(ClassSupply fragment) {
- Objects.requireNonNull(fragment);
- registry.remove(fragment);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/EditingDomainSource.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/EditingDomainSource.java
deleted file mode 100644
index 6c9d0b5f0..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/EditingDomainSource.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import org.eclipse.emf.edit.domain.EditingDomain;
-
-public interface EditingDomainSource {
-
- EditingDomain create();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/FloatingLicenseRequest.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/FloatingLicenseRequest.java
deleted file mode 100644
index 0e8bc04ae..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/FloatingLicenseRequest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Collection;
-
-import org.eclipse.passage.lic.api.EvaluationInstructions;
-
-/**
- * Collection of all the data required to issue a floating license pack.
- */
-public interface FloatingLicenseRequest extends GeneralLicenseRequest {
-
- /**
- * Identifiers of all the Users selected to to gave access to this
- * floating license
- */
- Collection users();
-
- /**
- * Licensing condition for a User identified by the given
- * {@code user} value.
- */
- EvaluationInstructions userAuthentication(String user);
-
- /**
- * Default capacity for all the FeatureGrants defined in this
- * floating license pack.
- */
- int defaultCapacity();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/GeneralLicenseRequest.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/GeneralLicenseRequest.java
deleted file mode 100644
index b2381d899..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/GeneralLicenseRequest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Date;
-
-/**
- * Collects common data required to issue a license of any type
- */
-public interface GeneralLicenseRequest {
-
- /**
- * Returns the identifier of this licensing request. This is the value of its
- * "identifier" attribute.
- */
- String identifier();
-
- /**
- * Returns the creation date of this licensing request. This is the value of its
- * "creationDate" attribute.
- */
- Date creationDate();
-
- /**
- * Returns the "Product" identifier of this licensing request. This
- * is the value of its "productIdentifier" attribute.
- */
- String productIdentifier();
-
- /**
- * Returns the "Product Version" version of this licensing request.
- * This is the value of its "productVersion" attribute.
- */
- String productVersion();
-
- /**
- * Returns the "License Plan" identifier of this licensing request.
- * This is the value of its "planIdentifier" attribute.
- */
- String plan();
-
- /**
- * Returns the validity period start date of this licensing request. This is the
- * value of its "validFrom" attribute.
- */
- Date validFrom();
-
- /**
- * Returns the validity period end date of this licensing request. This is the
- * value of its "validUntil" attribute.
- */
- Date validUntil();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/InstanceSupply.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/InstanceSupply.java
deleted file mode 100644
index 3110ef4b0..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/InstanceSupply.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Optional;
-
-/**
- *
- * Supplies instance of the given type, typically
- *
- * @param a type of supplied instance
- */
-@FunctionalInterface
-public interface InstanceSupply {
-
- /**
- * Triggers a process of instance selection or instance creation that may
- * require user interaction
- *
- * @return a selected or created instance or empty {@link Optional}
- */
- Optional supply();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedFloatingLicense.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedFloatingLicense.java
deleted file mode 100644
index 49327364f..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedFloatingLicense.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.nio.file.Path;
-import java.util.List;
-
-public interface IssuedFloatingLicense {
-
- Path residence();
-
- List files();
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedLicense.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedLicense.java
deleted file mode 100644
index e1d5da94f..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedLicense.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.nio.file.Path;
-
-import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack;
-
-public interface IssuedLicense {
-
- PersonalLicensePack license();
-
- Path encrypted();
-
- Path decrypted();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LicensingEvents.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LicensingEvents.java
deleted file mode 100644
index 21abdc74f..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LicensingEvents.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-/**
- *
- * Codes of licensing events
- *
- * @since 0.4.0
- */
-public interface LicensingEvents {
-
- String PROPERTY_TOPIC = "org.eclipse.passage.lic.api.event.topic"; //$NON-NLS-1$
- String PROPERTY_SOURCE = "org.eclipse.passage.lic.api.event.source"; //$NON-NLS-1$
- String PROPERTY_DATA = "org.eclipse.passage.lic.api.event.data"; //$NON-NLS-1$
- String PROPERTY_MESSAGE = "org.eclipse.passage.lic.api.event.message"; //$NON-NLS-1$
-
- /**
- * Segment for events of type create
- *
- * @since 0.4.0
- */
- String CREATE = "create"; //$NON-NLS-1$
-
- /**
- * Segment for events of type read
- *
- * @since 0.4.0
- */
- String READ = "read"; //$NON-NLS-1$
-
- /**
- * Segment for events of type update
- *
- * @since 0.4.0
- */
- String UPDATE = "update"; //$NON-NLS-1$
-
- /**
- * Segment for events of type delete
- *
- * @since 0.4.0
- */
- String DELETE = "delete"; //$NON-NLS-1$
-
- /**
- * Topic separator character
- *
- * @since 0.4.0
- */
- String TOPIC_SEP = "/"; //$NON-NLS-1$
-
- /**
- * Wild card character for matching all sub topics
- */
- String ALL_SUB_TOPICS = "*"; //$NON-NLS-1$
-
- /**
- * Base name of all Licensing events
- *
- * @since 0.4.0
- */
- String TOPIC_BASE = "org/eclipse/passage/lic/api"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorProperty.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorProperty.java
deleted file mode 100644
index 69364b69a..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorProperty.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.function.Supplier;
-
-public final class LocObjectMentorProperty implements Supplier {
-
- @Override
- public String get() {
- return "locMentor"; //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorshipService.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorshipService.java
deleted file mode 100644
index d1dfc4d8b..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorshipService.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.EObject;
-
-public interface LocObjectMentorshipService {
-
- /**
- * @return name of a mentor, if object has one.
- */
- Optional mentor(EObject object);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGear.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGear.java
deleted file mode 100644
index 3e9912744..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGear.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further evolution
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Optional;
-
-import org.eclipse.passage.lic.api.LicensedProduct;
-import org.eclipse.passage.lic.api.inspection.RuntimeEnvironmentRegistry;
-import org.eclipse.passage.lic.api.io.HashesRegistry;
-import org.eclipse.passage.lic.api.io.StreamCodec;
-import org.eclipse.passage.loc.internal.api.workspace.OperatorWorkspace;
-
-public interface OperatorGear {
-
- Optional codec(LicensedProduct product);
-
- RuntimeEnvironmentRegistry environments();
-
- HashesRegistry hashes();
-
- OperatorWorkspace workspace();
-
- EditingDomainSource editingDomainSource();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGearSupplier.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGearSupplier.java
deleted file mode 100644
index 62de1d6d1..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGearSupplier.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.function.Supplier;
-
-public interface OperatorGearSupplier extends Supplier {
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorLicenseService.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorLicenseService.java
deleted file mode 100644
index f36e9d6e8..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorLicenseService.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Collection;
-import java.util.Optional;
-
-import org.eclipse.passage.lic.api.ServiceInvocationResult;
-import org.eclipse.passage.lic.licenses.model.api.FloatingLicenseAccess;
-import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack;
-import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack;
-
-public interface OperatorLicenseService {
-
- /**
- * Create new instance of Personal License Pack to be verified and issued
- *
- */
- PersonalLicensePack createLicensePack(PersonalLicenseRequest request);
-
- /**
- * Physically issue new Personal License Pack according to all the data supplied
- * by the given data.
- *
- */
- ServiceInvocationResult issueLicensePack(PersonalLicensePack template);
-
- /**
- * Create new instance of Floating License Pack to be verified and issued. Base
- * data comes from the request, the rest can come from the existing license
- * pack.
- *
- * @since 1.1.0
- */
- FloatingLicensePack createFloatingLicensePack(FloatingLicenseRequest request,
- Optional template);
-
- /**
- * Physically issue new Floating License Pack according to all the data supplied
- * by the given data, optionally accompanied with the personal Floating License
- * Access files.
- *
- */
- ServiceInvocationResult issueFloatingLicensePack(FloatingLicensePack pack,
- Collection configs);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/PersonalLicenseRequest.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/PersonalLicenseRequest.java
deleted file mode 100644
index 31bd7940e..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/PersonalLicenseRequest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-/**
- * Collects the data required to issue the license
- *
- * @since 0.5.0
- */
-public interface PersonalLicenseRequest extends GeneralLicenseRequest {
-
- /**
- * Returns the "User" identifier of this licensing request. This is
- * the value of its "userIdentifier" attribute.
- *
- * @return the user identifier
- * @since 0.5.0
- */
- String user();
-
- /**
- * Returns the "User" full name of this licensing request. This is
- * the value of its "userFullName" attribute.
- *
- * @return the user full name
- * @since 0.5.0
- */
- String userFullName();
-
- /**
- * Returns the condition type of this licensing request. This is the value of
- * its "conditionType" attribute.
- *
- * @return the condition type
- * @since 0.5.0
- */
- String conditionType();
-
- /**
- * Returns the condition expression of this licensing request. This is the value
- * of its "conditionExpression" attribute.
- *
- * @return the condition expression
- * @since 0.5.0
- */
- String conditionExpression();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrMany.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrMany.java
deleted file mode 100644
index 64e1a030c..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrMany.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.function.Supplier;
-
-/**
- *
- * Experimental API to select existing or create new instance of given type.
- *
- */
-public final class ZeroOrMany {
-
- private final Supplier> source;
-
- public ZeroOrMany(Supplier> input) {
- this.source = input;
- }
-
- /**
- *
- * @param create the supplier of new instances. If no {@code input} elements are
- * supplies then a singleton collection of a newly created one is
- * returned. The supplier can potentially return nothing - then
- * the output collection is to be empty.
- * @param select the filtering selector callback which takes existing instances
- * ({@code input}) and does a filtering of any complexity,
- * possibly invoking UI.
- * @return collection of {@code select}-ed instances, a singleton
- * {@code new instance} collection or an empty collection.
- */
- public Collection choose(Supplier> create, Function, Collection> select) {
- Collection input = source.get();
- if (input.isEmpty()) {
- return create.get()//
- .map(Collections::singleton)//
- .orElse(Collections.emptySet());
- }
- return select.apply(input);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrOne.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrOne.java
deleted file mode 100644
index 5ff10dc71..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrOne.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api;
-
-import java.util.Iterator;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.function.Supplier;
-
-/**
- *
- * Experimental API to select existing or create new instance of given type.
- *
- */
-public final class ZeroOrOne {
-
- private final Supplier> supplier;
-
- public ZeroOrOne(Supplier> input) {
- this.supplier = input;
- }
-
- /**
- *
- * @param create the supplier of new instances
- * @param select the selector of existing instances from the given input
- * @return the {@link Optional} that contains an instance of requested type or
- * {@link Optional#empty()}
- */
- public Optional choose(Supplier> create, Function, Optional> select) {
- Iterable input = supplier.get();
- Iterator iterator = input.iterator();
- if (!iterator.hasNext()) {
- return optional(create.get());
- }
- C first = iterator.next();
- if (iterator.hasNext()) {
- return optional(select.apply(input));
- }
- return Optional.ofNullable(first);
- }
-
- private Optional optional(Optional untrusted) {
- return Optional.ofNullable(untrusted).orElse(Optional.empty());
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Agreements.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Agreements.java
deleted file mode 100644
index 2c47207d8..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Agreements.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-import org.eclipse.emf.ecore.EObject;
-
-public interface Agreements extends KnownResources {
-
- /**
- * Locate a handle for the given file under the common agreements residence
- *
- * @param file name of an agreement file
- * @return handle to be used for agreement content writing
- */
- ResourceHandle located(String file, EObject agreement);
-
- boolean exists(String file, EObject agreement);
-
- ResourceType text = new ResourceType() {
-
- @Override
- public String id() {
- return "agreements_text"; //$NON-NLS-1$
- }
- };
-
- ResourceType xmi = new ResourceType() {
-
- @Override
- public String id() {
- return "agreements_xmi"; //$NON-NLS-1$
- }
- };
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Features.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Features.java
deleted file mode 100644
index f997dc6ee..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Features.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface Features extends KnownResources {
-
- ResourceType xmi = new ResourceType() {
-
- @Override
- public String id() {
- return "features_xmi"; //$NON-NLS-1$
- }
- };
-
- ResourceType xmi033 = new ResourceType() {
-
- @Override
- public String id() {
- return "lic_features"; //$NON-NLS-1$
- }
- };
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/FolderHandle.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/FolderHandle.java
deleted file mode 100644
index 5b85ef877..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/FolderHandle.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 20221 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-/**
- * inconsistent, temporary
- */
-public interface FolderHandle {
-
- // FIXME: AF: find better solution
- String uri();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Keys.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Keys.java
deleted file mode 100644
index fc5f0ed88..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Keys.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-import java.util.Optional;
-
-import org.eclipse.passage.lic.api.LicensedProduct;
-
-public interface Keys {
-
- Optional existing(String product, String version);
-
- ResourceHandle located(String product, String version);
-
- ResourceHandle locatedPub(String product, String version);
-
- ResourceType xmi = new ResourceType() {
-
- @Override
- public String id() {
- return "keys_xmi"; //$NON-NLS-1$
- }
- };
-
- ResourceType pub = new ResourceType() {
-
- @Override
- public String id() {
- return "pub"; //$NON-NLS-1$
- }
- };
-
- public static final class Smart implements Keys {
-
- private final Keys delegate;
-
- public Smart(Keys delegate) {
- this.delegate = delegate;
- }
-
- @Override
- public Optional existing(String product, String version) {
- return delegate.existing(product, version);
- }
-
- public Optional existing(LicensedProduct product) {
- return existing(product.identifier(), product.version());
- }
-
- public boolean exists(LicensedProduct product) {
- return existing(product).isPresent();
- }
-
- @Override
- public ResourceHandle located(String product, String version) {
- return delegate.located(product, version);
- }
-
- public ResourceHandle located(LicensedProduct product) {
- return delegate.located(product.identifier(), product.version());
- }
-
- @Override
- public ResourceHandle locatedPub(String product, String version) {
- return delegate.locatedPub(product, version);
- }
-
- public ResourceHandle locatedPub(LicensedProduct product) {
- return delegate.locatedPub(product.identifier(), product.version());
- }
-
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/KnownResources.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/KnownResources.java
deleted file mode 100644
index 5b7afeb69..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/KnownResources.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-import java.util.List;
-
-public interface KnownResources {
-
- List all();
-
- // FIXME: AF: temporary to not keep the functionality
- void memento(List locations);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/LicensePacks.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/LicensePacks.java
deleted file mode 100644
index 7b7e18a78..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/LicensePacks.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface LicensePacks {
-
- FolderHandle packResidence(String pack, String product, String version);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Licenses.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Licenses.java
deleted file mode 100644
index b6c4e5719..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Licenses.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface Licenses extends KnownResources {
-
- ResourceType xmi = new ResourceType() {
-
- @Override
- public String id() {
- return "licenses_xmi"; //$NON-NLS-1$
- }
- };
-
- ResourceType xmi033 = new ResourceType() {
-
- @Override
- public String id() {
- return "lic_licenses"; //$NON-NLS-1$
- }
- };
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/OperatorWorkspace.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/OperatorWorkspace.java
deleted file mode 100644
index c12064843..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/OperatorWorkspace.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface OperatorWorkspace {
-
- Features features();
-
- Products products();
-
- Keys keys();
-
- LicensePacks licensePacks();
-
- Agreements agreements();
-
- Licenses licenses();
-
- Users users();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Products.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Products.java
deleted file mode 100644
index 2643dcfa0..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Products.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface Products extends KnownResources {
-
- ResourceType xmi = new ResourceType() {
-
- @Override
- public String id() {
- return "products_xmi"; //$NON-NLS-1$
- }
- };
-
- ResourceType xmi033 = new ResourceType() {
-
- @Override
- public String id() {
- return "lic_products"; //$NON-NLS-1$
- }
- };
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceHandle.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceHandle.java
deleted file mode 100644
index 9bd0b2296..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceHandle.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface ResourceHandle {
-
- /**
- * Tell a client where the content is hosted (path to a file, for instance)
- */
- String info();
-
- ResourceType type();
-
- void write(byte[] content) throws Exception;
-
- byte[] content() throws Exception;
-
- // FIXME: AF: find better solution
- String uri();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceType.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceType.java
deleted file mode 100644
index 0e0ba3f3e..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceType.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface ResourceType {
-
- String id();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Users.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Users.java
deleted file mode 100644
index 25a4a99a4..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Users.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.api.workspace;
-
-public interface Users extends KnownResources {
-
- ResourceType xmi = new ResourceType() {
-
- @Override
- public String id() {
- return "users_xmi"; //$NON-NLS-1$
- }
- };
-
- ResourceType xmi033 = new ResourceType() {
-
- @Override
- public String id() {
- return "lic_users"; //$NON-NLS-1$
- }
- };
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/DomainContentAdapter.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/DomainContentAdapter.java
deleted file mode 100644
index 87ed58556..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/DomainContentAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.emf;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-
-public abstract class DomainContentAdapter> extends EContentAdapter {
-
- protected final R registry;
-
- protected DomainContentAdapter(R registry) {
- this.registry = registry;
- }
-
- @Override
- public void notifyChanged(Notification notification) {
- Object notifier = notification.getNotifier();
- if (notifier instanceof ResourceSet) {
- ResourceSet resourceSet = (ResourceSet) notifier;
- switch (notification.getFeatureID(ResourceSet.class)) {
- case ResourceSet.RESOURCE_SET__RESOURCES:
- processResourceSetResources(resourceSet, notification);
- break;
- default:
- break;
- }
- } else if (notifier instanceof Resource) {
- Resource resource = (Resource) notifier;
- switch (notification.getFeatureID(Resource.class)) {
- case Resource.RESOURCE__CONTENTS:
- processResourceContents(resource, notification);
- break;
- case Resource.RESOURCE__IS_LOADED:
- processResourceIsLoaded(resource, notification);
- break;
- default:
- break;
- }
- }
- super.notifyChanged(notification);
- }
-
- @SuppressWarnings("unused")
- protected void processResourceSetResources(ResourceSet resourceSet, Notification notification) {
- // nothing by default
- }
-
- protected void processResourceContents(Resource resource, Notification notification) {
- Object oldValue = notification.getOldValue();
- Object newValue = notification.getNewValue();
- switch (notification.getEventType()) {
- case Notification.ADD:
- processResourceContentsAdded(resource, newValue);
- break;
- case Notification.REMOVE:
- processResourceContentsRemoved(resource, oldValue);
- break;
-
- default:
- break;
- }
- }
-
- protected void processResourceContentsAdded(Resource resource, Object newValue) {
- Class contentClass = registry.getContentClass();
- if (contentClass.isInstance(newValue)) {
- I content = contentClass.cast(newValue);
- registry.registerContent(content);
- }
- }
-
- protected void processResourceContentsRemoved(Resource resource, Object oldValue) {
- Class contentClass = registry.getContentClass();
- if (contentClass.isInstance(oldValue)) {
- I content = contentClass.cast(oldValue);
- String identifier = registry.resolveIdentifier(content);
- registry.unregisterContent(identifier);
- }
- }
-
- @SuppressWarnings("unused")
- protected void processResourceIsLoaded(Resource resource, Notification notification) {
- // nothing by default
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistry.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistry.java
deleted file mode 100644
index c16837a1e..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistry.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.emf;
-
-import java.util.List;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.passage.lic.api.ServiceInvocationResult;
-
-public interface EditingDomainRegistry {
-
- ServiceInvocationResult registerSource(URI uri);
-
- void unregisterSource(URI uri);
-
- List getSources();
-
- Class getContentClass();
-
- String resolveIdentifier(I content);
-
- void registerContent(I content);
-
- void unregisterContent(String identifier);
-
- String getFileExtension();
-
- // TODO: is not used
- EClass getContentClassifier();
-
- EStructuralFeature getContentIdentifierAttribute();
-
- EStructuralFeature getContentNameAttribute();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistryAccess.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistryAccess.java
deleted file mode 100644
index 75dd41cd2..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistryAccess.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.emf;
-
-public interface EditingDomainRegistryAccess {
-
- String PROPERTY_DOMAIN_NAME = "org.eclipse.passage.lic.emf.edit.domain.name"; //$NON-NLS-1$
- String PROPERTY_FILE_EXTENSION = "org.eclipse.passage.lic.emf.edit.file.extension"; //$NON-NLS-1$
-
- EditingDomainRegistry> getDomainRegistry(String domain);
-
- String getFileExtension(String domain);
-
- SelectionCommandAdvisor getSelectionCommandAdvisor(String domain);
-}
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/LabeledDiagnostician.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/LabeledDiagnostician.java
deleted file mode 100644
index 2b4840bd7..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/LabeledDiagnostician.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.emf;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.Diagnostician;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-
-public final class LabeledDiagnostician extends Diagnostician {
- private final AdapterFactory adapterFactory;
-
- /**
- * @since 1.0
- */
- public LabeledDiagnostician() {
- this(new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE));
- }
-
- public LabeledDiagnostician(AdapterFactory adapterFactory) {
- this.adapterFactory = adapterFactory;
- }
-
- @Override
- public String getObjectLabel(EObject eObject) {
- if (adapterFactory != null && !eObject.eIsProxy()) {
- IItemLabelProvider itemLabelProvider = (IItemLabelProvider) adapterFactory.adapt(eObject,
- IItemLabelProvider.class);
- if (itemLabelProvider != null) {
- return itemLabelProvider.getText(eObject);
- }
- }
- return super.getObjectLabel(eObject);
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/SelectionCommandAdvisor.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/SelectionCommandAdvisor.java
deleted file mode 100644
index ffd196979..000000000
--- a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/SelectionCommandAdvisor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.internal.emf;
-
-public interface SelectionCommandAdvisor {
-
- String getSelectionTitle(String classifier);
-
- Iterable> getSelectionInput(String classifier);
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/.classpath b/bundles/org.eclipse.passage.loc.dashboard.ui/.classpath
deleted file mode 100644
index 81fe078c2..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/.project b/bundles/org.eclipse.passage.loc.dashboard.ui/.project
deleted file mode 100644
index 3ee92d048..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/.project
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- org.eclipse.passage.loc.dashboard.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- .settings
- 2
- $%7BPARENT-2-PROJECT_LOC%7D/.settings
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.dashboard.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 87c1b485d..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,37 +0,0 @@
-Manifest-Version: 1.0
-Automatic-Module-Name: org.eclipse.passage.loc.dashboard.ui
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.passage.loc.dashboard.ui;singleton:=true
-Bundle-Version: 3.1.0.qualifier
-Bundle-Name: %Bundle-Name
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Copyright: %Bundle-Copyright
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.e4.core.di.annotations;bundle-version="0.0.0",
- org.eclipse.e4.core.contexts;bundle-version="0.0.0",
- org.eclipse.e4.core.services;bundle-version="0.0.0",
- org.eclipse.e4.ui.di;bundle-version="0.0.0",
- org.eclipse.e4.ui.services;bundle-version="0.0.0",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="0.0.0",
- org.eclipse.passage.lic.emf;bundle-version="0.0.0",
- org.eclipse.passage.lic.e4.core;bundle-version="0.0.0",
- org.eclipse.passage.lic.licenses.model;bundle-version="0.0.0",
- org.eclipse.passage.loc.agreements.core;bundle-version="0.1.0",
- org.eclipse.passage.loc.agreements.ui;bundle-version="0.1.0",
- org.eclipse.passage.loc.api;bundle-version="0.0.0",
- org.eclipse.passage.loc.features.core;bundle-version="0.0.0",
- org.eclipse.passage.loc.features.ui;bundle-version="0.0.0",
- org.eclipse.passage.loc.licenses.core;bundle-version="0.0.0",
- org.eclipse.passage.loc.licenses.ui;bundle-version="0.0.0",
- org.eclipse.passage.loc.products.ui;bundle-version="0.0.0",
- org.eclipse.passage.loc.users.ui;bundle-version="0.0.0",
- org.eclipse.passage.loc.workbench.emfforms;bundle-version="0.0.0"
-Import-Package: javax.annotation;version="1.0.0";resolution:=optional,
- javax.inject;version="1.0.0"
-Export-Package: org.eclipse.passage.loc.dashboard.ui;x-internal:=true,
- org.eclipse.passage.loc.dashboard.ui.details;x-internal:=true,
- org.eclipse.passage.loc.dashboard.ui.handlers;x-internal:=true,
- org.eclipse.passage.loc.dashboard.ui.panel;x-internal:=true,
- org.eclipse.passage.loc.dashboard.ui.wizards;x-internal:=true,
- org.eclipse.passage.loc.dashboard.ui.wizards.floating;x-internal:=true
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.dashboard.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 1b1614592..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2024 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-Bundle-Name = Passage LOC Dashboard
-Bundle-Vendor = Eclipse Passage
-Bundle-Copyright = Copyright (c) 2018, 2024 ArSysOp and others.\n\
-\n\
-This program and the accompanying materials are made\n\
-available under the terms of the Eclipse Public License 2.0\n\
-which is available at https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/about.html b/bundles/org.eclipse.passage.loc.dashboard.ui/about.html
deleted file mode 100644
index 164f781a8..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-About
-
-
-
About This Content
-
-
November 30, 2017
-
License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at http://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at http://www.eclipse.org.
-
-
-
-
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/build.properties b/bundles/org.eclipse.passage.loc.dashboard.ui/build.properties
deleted file mode 100644
index b9fc0df7e..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2018, 2020 ArSysOp and others
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License 2.0 which is available at
-# https://www.eclipse.org/legal/epl-2.0/.
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# ArSysOp - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- fragment.e4xmi,\
- plugin.xml,\
- about.html
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.dashboard.ui/fragment.e4xmi
deleted file mode 100644
index bdf2a60dd..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/fragment.e4xmi
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FORCE_TEXT
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/plugin.xml b/bundles/org.eclipse.passage.loc.dashboard.ui/plugin.xml
deleted file mode 100644
index c4769d3a1..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/DashboardUi.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/DashboardUi.java
deleted file mode 100644
index f2f8f9f5b..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/DashboardUi.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.services.events.IEventBroker;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.lic.features.model.meta.FeaturesPackage;
-import org.eclipse.passage.lic.internal.e4.core.commands.ExecuteCommand;
-import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage;
-import org.eclipse.passage.lic.products.model.meta.ProductsPackage;
-import org.eclipse.passage.lic.users.model.meta.UsersPackage;
-import org.eclipse.passage.loc.agreements.ui.AgreementsUi;
-import org.eclipse.passage.loc.features.ui.FeaturesUi;
-import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess;
-import org.eclipse.passage.loc.internal.emf.SelectionCommandAdvisor;
-import org.eclipse.passage.loc.licenses.ui.LicensesUi;
-import org.eclipse.passage.loc.products.ui.ProductsUi;
-import org.eclipse.passage.loc.users.ui.UsersUi;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-
-public class DashboardUi {
-
- public static final String COMMAND_CREATE = "org.eclipse.passage.loc.dashboard.ui.command.create"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_CREATE_DOMAIN = "org.eclipse.passage.loc.dashboard.ui.commandparameter.create.domain"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_CREATE_PERSPECTIVE = "org.eclipse.passage.loc.dashboard.ui.commandparameter.create.perspective"; //$NON-NLS-1$
-
- public static final String COMMAND_LOAD = "org.eclipse.passage.loc.dashboard.ui.command.load"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_LOAD_DOMAIN = "org.eclipse.passage.loc.dashboard.ui.commandparameter.load.domain"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_LOAD_PERSPECTIVE = "org.eclipse.passage.loc.dashboard.ui.commandparameter.load.perspective"; //$NON-NLS-1$
-
- public static final String COMMAND_SHOW = "org.eclipse.passage.loc.dashboard.ui.command.show"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_SHOW_DOMAIN = "org.eclipse.passage.loc.dashboard.ui.commandparameter.show.domain"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_SHOW_CLASSIFIER = "org.eclipse.passage.loc.dashboard.ui.commandparameter.show.classifier"; //$NON-NLS-1$
- public static final String COMMANDPARAMETER_SHOW_PERSPECTIVE = "org.eclipse.passage.loc.dashboard.ui.commandparameter.show.perspective"; //$NON-NLS-1$
-
- public static final String COMMAND_ISSUE_LICENSE = "org.eclipse.passage.loc.dashboard.ui.command.issue.license"; //$NON-NLS-1$
- public static final String COMMAND_ISSUE_FLOATING_LICENSE = "org.eclipse.passage.loc.dashboard.ui.command.issue.floatinglicense"; //$NON-NLS-1$
-
- public static void showDetails(IEclipseContext context, String domain, String classifier, String perspectiveId) {
- Iterable> input = resolveInput(context, domain, classifier);
- String title = resolveTitle(context, domain, classifier);
- Object selectedClassifier = LocWokbench.selectClassifier(context, classifier, title, input, null);
- if (selectedClassifier != null) {
- LocWokbench.switchPerspective(context, perspectiveId);
- IEventBroker broker = context.get(IEventBroker.class);
- broker.post(LocWokbench.TOPIC_SHOW, selectedClassifier);
- }
- }
-
- private static Iterable> resolveInput(IEclipseContext context, String domain, String classifier) {
- EditingDomainRegistryAccess registryAccess = context.get(EditingDomainRegistryAccess.class);
- SelectionCommandAdvisor advisor = registryAccess.getSelectionCommandAdvisor(domain);
- if (advisor != null) {
- return advisor.getSelectionInput(classifier);
- }
- return Collections.emptyList();
- }
-
- private static String resolveTitle(IEclipseContext context, String domain, String classifier) {
- EditingDomainRegistryAccess registryAccess = context.get(EditingDomainRegistryAccess.class);
- SelectionCommandAdvisor advisor = registryAccess.getSelectionCommandAdvisor(domain);
- if (advisor != null) {
- return advisor.getSelectionTitle(classifier);
- }
- return null;
- }
-
- public static String resolvePerspectiveId(String domain) {
- if (domain == null) {
- return null;
- }
- switch (domain) {
- case AgreementsPackage.eNAME:
- return AgreementsUi.PERSPECTIVE_MAIN;
- case FeaturesPackage.eNAME:
- return FeaturesUi.PERSPECTIVE_MAIN;
- case ProductsPackage.eNAME:
- return ProductsUi.PERSPECTIVE_MAIN;
- case UsersPackage.eNAME:
- return UsersUi.PERSPECTIVE_MAIN;
- case LicensesPackage.eNAME:
- return LicensesUi.PERSPECTIVE_MAIN;
- default:
- break;
- }
- return null;
- }
-
- public static void executeCreateCommand(IEclipseContext context, String domain) {
- Map parameters = new HashMap<>();
- parameters.put(COMMANDPARAMETER_CREATE_DOMAIN, domain);
- String perspectiveId = resolvePerspectiveId(domain);
- if (perspectiveId != null) {
- parameters.put(COMMANDPARAMETER_CREATE_PERSPECTIVE, perspectiveId);
- }
- new ExecuteCommand(COMMAND_CREATE, context).apply(parameters);
- }
-
- public static void executeLoadCommand(IEclipseContext context, String domain) {
- Map parameters = new HashMap<>();
- parameters.put(COMMANDPARAMETER_LOAD_DOMAIN, domain);
- String perspectiveId = resolvePerspectiveId(domain);
- if (perspectiveId != null) {
- parameters.put(COMMANDPARAMETER_LOAD_PERSPECTIVE, perspectiveId);
- }
- new ExecuteCommand(COMMAND_LOAD, context).apply(parameters);
- }
-
- public static void executeShowCommand(IEclipseContext context, String domain, String classifier) {
- Map parameters = new HashMap<>();
- parameters.put(COMMANDPARAMETER_SHOW_DOMAIN, domain);
- parameters.put(COMMANDPARAMETER_SHOW_CLASSIFIER, classifier);
- String perspectiveId = resolvePerspectiveId(domain);
- if (perspectiveId != null) {
- parameters.put(COMMANDPARAMETER_SHOW_PERSPECTIVE, perspectiveId);
- }
- new ExecuteCommand(COMMAND_SHOW, context).apply(parameters);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/details/DashboardDetailsPart.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/details/DashboardDetailsPart.java
deleted file mode 100644
index 31f52b336..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/details/DashboardDetailsPart.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.details;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.DashboardUiMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-
-public class DashboardDetailsPart {
-
- private final IEclipseContext contex;
-
- @Inject
- public DashboardDetailsPart(IEclipseContext context) {
- this.contex = context;
- }
-
- @PostConstruct
- public void postConstruct(Composite parent) {
- Composite content = new Composite(parent, SWT.NONE);
- content.setLayout(GridLayoutFactory.fillDefaults().create());
- Label header = new Label(content, SWT.NONE);
- header.setFont(JFaceResources.getHeaderFont());
- header.setLayoutData(
- GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(true, false).indent(0, 20).create());
- String pattern = DashboardUiMessages.DashboardDetailsPart_welcome;
- String brandingName = contex.get(IApplicationContext.class).getBrandingName();
- header.setText(String.format(pattern, brandingName));
-
- Label title = new Label(content, SWT.NONE);
- title.setFont(JFaceResources.getBannerFont());
- title.setLayoutData(
- GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(true, false).indent(0, 10).create());
- title.setText(DashboardUiMessages.DashboardDetailsPart_title);
-
- StyledText styled = new StyledText(content, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY | SWT.V_SCROLL);
- styled.setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).grab(true, true).create());
- String text = composeWelcomeText();
- styled.setText(text);
- styled.setBackground(JFaceColors.getInformationViewerBackgroundColor(Display.getDefault()));
- }
-
- protected String composeWelcomeText() {
- StringBuilder sb = new StringBuilder();
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_feature_set_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_feature_set_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_feature_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_feature_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_feature_version_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_feature_version_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_line_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_line_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_version_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_version_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_version_feature_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_product_version_feature_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_user_origin_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_user_origin_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_user_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_user_description);
- sb.append('\n');
- sb.append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_license_pack_create).append('\n');
- sb.append(DashboardUiMessages.DashboardDetailsPart_license_pack_description);
- return sb.toString();
- }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardCreateHandler.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardCreateHandler.java
deleted file mode 100644
index d23395008..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardCreateHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.handlers;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.loc.dashboard.ui.DashboardUi;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-
-public class DashboardCreateHandler {
-
- @Execute
- public void execute(IEclipseContext eclipseContext,
- @Named(DashboardUi.COMMANDPARAMETER_CREATE_DOMAIN) String domain,
- @Named(DashboardUi.COMMANDPARAMETER_CREATE_PERSPECTIVE) String perspectiveId) {
- LocWokbench.createDomainResource(eclipseContext, domain, perspectiveId);
- }
-
-
- @CanExecute
- public boolean canExecute(@Named(DashboardUi.COMMANDPARAMETER_CREATE_DOMAIN) String domain) {
- return domain != null;
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueFloatingLicenseHandler.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueFloatingLicenseHandler.java
deleted file mode 100644
index 728670a6f..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueFloatingLicenseHandler.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.handlers;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.passage.lic.jface.actions.LicensedRunnableUI;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.dashboard.ui.wizards.floating.FloatingDataPack;
-import org.eclipse.passage.loc.dashboard.ui.wizards.floating.IssueFloatingLicenseWizard;
-import org.eclipse.passage.loc.internal.api.OperatorLicenseService;
-import org.eclipse.swt.widgets.Shell;
-
-public final class DashboardIssueFloatingLicenseHandler {
-
- private final String feature = "org.eclipse.passage.loc.operator.issue.floating"; //$NON-NLS-1$
-
- @Execute
- public void execute(IEclipseContext context, @Named(IServiceConstants.ACTIVE_SELECTION) @Optional LicensePlan plan,
- @Named(IServiceConstants.ACTIVE_SELECTION) @Optional User user,
- @Named(IServiceConstants.ACTIVE_SELECTION) @Optional ProductVersion product) {
- new LicensedRunnableUI(feature, () -> open(context, //
- new IssueFloatingLicenseWizard(//
- context, //
- new FloatingDataPack(//
- java.util.Optional.ofNullable(plan), //
- java.util.Optional.ofNullable(user), //
- java.util.Optional.ofNullable(product))) //
- )).run();
- }
-
- private void open(IEclipseContext context, Wizard wizard) {
- WizardDialog dialog = new WizardDialog(context.get(Shell.class), wizard);
- dialog.create();
- Shell shell = dialog.getShell();
- shell.setImage(LicensingImages.getImage(LicensesPackage.eINSTANCE.getPersonalLicensePack().getName()));
- shell.setSize(Math.max(800, shell.getSize().x), 700);
- dialog.open();
- }
-
- @CanExecute
- public boolean canExecute(IEclipseContext context) {
- return context.get(OperatorLicenseService.class) != null;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueLicenseHandler.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueLicenseHandler.java
deleted file mode 100644
index 3aee5cc77..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueLicenseHandler.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.handlers;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.passage.lic.jface.actions.LicensedRunnableUI;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.dashboard.ui.wizards.IssueLicenseWizard;
-import org.eclipse.passage.loc.dashboard.ui.wizards.PersonalDataPack;
-import org.eclipse.passage.loc.internal.api.OperatorLicenseService;
-import org.eclipse.swt.widgets.Shell;
-
-public class DashboardIssueLicenseHandler {
-
- private final String feature = "org.eclipse.passage.loc.operator.issue.personal"; //$NON-NLS-1$
-
- @Execute
- public void execute(IEclipseContext context, @Named(IServiceConstants.ACTIVE_SELECTION) @Optional LicensePlan plan,
- @Named(IServiceConstants.ACTIVE_SELECTION) @Optional User user,
- @Named(IServiceConstants.ACTIVE_SELECTION) @Optional ProductVersion product) {
- Shell shell = context.get(Shell.class);
- new LicensedRunnableUI(() -> shell, feature, () -> startWizard(shell, context, plan, user, product)).run();
- }
-
- private void startWizard(Shell shell, IEclipseContext context, LicensePlan plan, User user,
- ProductVersion product) {
- IssueLicenseWizard wizard = new IssueLicenseWizard(context, new PersonalDataPack(//
- java.util.Optional.ofNullable(plan), //
- java.util.Optional.ofNullable(user), //
- java.util.Optional.ofNullable(product)//
- ));
- open(shell, wizard);
- }
-
- private void open(Shell shell, IssueLicenseWizard wizard) {
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.create();
- shape(dialog);
- dialog.open();
- }
-
- private void shape(WizardDialog dialog) {
- Shell shell = dialog.getShell();
- shell.setImage(LicensingImages.getImage(LicensesPackage.eINSTANCE.getPersonalLicensePack().getName()));
- shell.setSize(Math.max(1000, shell.getSize().x), Math.max(800, shell.getSize().y));
- }
-
- @CanExecute
- public boolean canExecute(IEclipseContext context) {
- return context.get(OperatorLicenseService.class) != null;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardLoadHandler.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardLoadHandler.java
deleted file mode 100644
index 6c020046b..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardLoadHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.handlers;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.loc.dashboard.ui.DashboardUi;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-
-public class DashboardLoadHandler {
-
- @Execute
- public void execute(IEclipseContext eclipseContext,
- @Named(DashboardUi.COMMANDPARAMETER_LOAD_DOMAIN) String domain,
- @Named(DashboardUi.COMMANDPARAMETER_LOAD_PERSPECTIVE) String perspectiveId) {
- LocWokbench.loadDomainResource(eclipseContext, domain, perspectiveId);
- }
-
-
- @CanExecute
- public boolean canExecute(@Named(DashboardUi.COMMANDPARAMETER_LOAD_DOMAIN) String domain) {
- return domain != null;
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardShowHandler.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardShowHandler.java
deleted file mode 100644
index c0ecd54d4..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardShowHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.handlers;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.passage.loc.dashboard.ui.DashboardUi;
-
-public class DashboardShowHandler {
-
- @Execute
- public void execute(IEclipseContext eclipseContext,
- @Named(DashboardUi.COMMANDPARAMETER_SHOW_DOMAIN) String domain,
- @Named(DashboardUi.COMMANDPARAMETER_SHOW_CLASSIFIER) String classifier,
- @Named(DashboardUi.COMMANDPARAMETER_SHOW_PERSPECTIVE) String perspectiveId) {
- DashboardUi.showDetails(eclipseContext, domain, classifier, perspectiveId);
- }
-
-
- @CanExecute
- public boolean canExecute(@Named(DashboardUi.COMMANDPARAMETER_SHOW_DOMAIN) String domain) {
- return domain != null;
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelAdvisor.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelAdvisor.java
deleted file mode 100644
index 6e8508827..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelAdvisor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.panel;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.features.FeatureRegistry;
-import org.eclipse.passage.loc.internal.licenses.LicenseRegistry;
-import org.eclipse.passage.loc.internal.products.ProductRegistry;
-import org.eclipse.passage.loc.internal.users.UserRegistry;
-import org.eclipse.swt.widgets.Composite;
-
-public interface DashboardPanelAdvisor {
-
- void init(IEclipseContext context);
-
- void createHeaderInfo(Composite parent);
-
- void createFeatureInfo(Composite parent, FeatureRegistry registry);
-
- void updateFeatureInfo(FeatureRegistry registry);
-
- void createProductInfo(Composite parent, ProductRegistry registry);
-
- void updateProductInfo(ProductRegistry registry);
-
- void createUserInfo(Composite parent, UserRegistry registry);
-
- void updateUserInfo(UserRegistry registry);
-
- void createLicenseInfo(Composite parent, LicenseRegistry registry);
-
- void updateLicenseInfo(LicenseRegistry registry);
-
- void createAgreementInfo(Composite parent, AgreementRegistry registry);
-
- void updateAgreementInfo(AgreementRegistry registry);
-
- void createFooterInfo(Composite parent);
-
- void dispose(IEclipseContext context);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelBlock.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelBlock.java
deleted file mode 100644
index 283ac63a3..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelBlock.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.panel;
-
-import java.util.stream.StreamSupport;
-
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.DashboardUiMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-
-public class DashboardPanelBlock {
-
- private String warning;
- private String info;
-
- private Text text;
- private ControlDecoration decoration;
- private Link show;
-
- public void createControl(Composite parent, String label, Image image) {
- text = createTextBlock(parent, label, image);
- decoration = new ControlDecoration(text, SWT.TOP | SWT.LEFT);
- show = new Link(parent, SWT.NONE);
- show.setText(DashboardUiMessages.DashboardPanelBlock_show_text);
- }
-
- public void configureShow(String tooltip, SelectionListener listener) {
- show.setToolTipText(tooltip);
- show.addSelectionListener(listener);
- }
-
- protected Text createTextBlock(Composite parent, String label, Image image) {
- Label imageLabel = new Label(parent, SWT.NONE);
- imageLabel.setImage(image);
- Label blockLabel = new Label(parent, SWT.NONE);
- {
- GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
- data.widthHint = 100;
- blockLabel.setLayoutData(data);
- }
- blockLabel.setText(label);
- Text blockText = new Text(parent, SWT.READ_ONLY);
- {
- GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
- data.widthHint = 50;
- data.horizontalIndent = 5;
- blockText.setLayoutData(data);
- }
- return blockText;
- }
-
- protected void decorateTextBlock(String warningPattern, String infoPattern, long count, ControlDecoration controlDecoration) {
- FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
- if (count > 0) {
- Image image = registry.getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).getImage();
- controlDecoration.setImage(image);
- controlDecoration.setDescriptionText(String.format(infoPattern, count));
- } else {
- Image image = registry.getFieldDecoration(FieldDecorationRegistry.DEC_WARNING).getImage();
- controlDecoration.setImage(image);
- controlDecoration.setDescriptionText(String.format(warningPattern, count));
- }
- }
-
- public void setInfo(String info) {
- this.info = info;
- }
-
- public void setWarning(String warning) {
- this.warning = warning;
- }
-
- public void update(Iterable> iterable) {
- update(StreamSupport.stream(iterable.spliterator(), false).count());
- }
-
- public void update(long count) {
- String value = String.valueOf(count);
- if (value.equals(text.getText())) {
- return;
- }
- text.setText(value);
- show.setEnabled(count > 0);
- decorateTextBlock(warning, info, count, decoration);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelPart.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelPart.java
deleted file mode 100644
index 539ba37a0..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelPart.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.panel;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-
-import org.eclipse.e4.core.contexts.EclipseContextFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.e4.ui.di.Persist;
-import org.eclipse.e4.ui.di.UIEventTopic;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.passage.lic.agreements.model.api.Agreement;
-import org.eclipse.passage.lic.agreements.model.api.AgreementGroup;
-import org.eclipse.passage.lic.emf.meta.ComposableClassMetadata;
-import org.eclipse.passage.lic.features.model.api.Feature;
-import org.eclipse.passage.lic.features.model.api.FeatureSet;
-import org.eclipse.passage.lic.features.model.api.FeatureVersion;
-import org.eclipse.passage.lic.internal.agreements.model.AgreementsClassMetadata;
-import org.eclipse.passage.lic.internal.features.model.FeaturesClassMetadata;
-import org.eclipse.passage.lic.internal.licenses.model.LicensesClassMetadata;
-import org.eclipse.passage.lic.internal.products.model.ProductsClassMetadata;
-import org.eclipse.passage.lic.internal.users.model.UsersClassMetadata;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.products.model.api.Product;
-import org.eclipse.passage.lic.products.model.api.ProductLine;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.products.model.api.ProductVersionFeature;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.lic.users.model.api.UserOrigin;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistryEvents;
-import org.eclipse.passage.loc.internal.features.FeatureRegistry;
-import org.eclipse.passage.loc.internal.features.FeatureRegistryEvents;
-import org.eclipse.passage.loc.internal.licenses.LicenseRegistry;
-import org.eclipse.passage.loc.internal.licenses.LicenseRegistryEvents;
-import org.eclipse.passage.loc.internal.products.ProductRegistry;
-import org.eclipse.passage.loc.internal.products.ProductRegistryEvents;
-import org.eclipse.passage.loc.internal.users.UserRegistry;
-import org.eclipse.passage.loc.internal.users.UserRegistryEvents;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.osgi.framework.FrameworkUtil;
-
-@SuppressWarnings("unused")
-public class DashboardPanelPart {
-
- private final FeatureRegistry features;
- private final ProductRegistry products;
- private final UserRegistry users;
- private final AgreementRegistry agreements;
- private final LicenseRegistry licenses;
- private final DashboardPanelAdvisor dashboard;
-
- @Inject
- public DashboardPanelPart(IEclipseContext context) {
- this.features = context.get(FeatureRegistry.class);
- this.products = context.get(ProductRegistry.class);
- this.users = context.get(UserRegistry.class);
- this.agreements = context.get(AgreementRegistry.class);
- this.licenses = context.get(LicenseRegistry.class);
- this.dashboard = dashboard(context);
- }
-
- private DashboardPanelAdvisor dashboard(IEclipseContext context) {
- DashboardPanelAdvisor advisor = context.get(DashboardPanelAdvisor.class);
- if (advisor == null) {
- advisor = new DefaultDashboardPanelAdvisor();
- }
- return advisor;
- }
-
- @PostConstruct
- public void postConstruct(Composite parent, IEclipseContext context) {
- dashboard.init(context);
- Composite area = new Composite(parent, SWT.NONE);
- area.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
- area.setLayout(GridLayoutFactory.swtDefaults().create());
- createHeaderInfo(area);
- createFeatureInfo(area);
- createProductInfo(area);
- createUserInfo(area);
- createAgreementInfo(area);
- createLicenseInfo(area);
- createFooterInfo(area);
- // FIXME: replace this with OSGi component registration
- ComposableClassMetadata metadata = EclipseContextFactory
- .getServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext())
- .get(ComposableClassMetadata.class);
- metadata.consider(new FeaturesClassMetadata());
- metadata.consider(new ProductsClassMetadata());
- metadata.consider(new UsersClassMetadata());
- metadata.consider(new AgreementsClassMetadata());
- metadata.consider(new LicensesClassMetadata());
- }
-
- protected void createHeaderInfo(Composite parent) {
- dashboard.createHeaderInfo(parent);
- }
-
- protected void createFeatureInfo(Composite parent) {
- dashboard.createFeatureInfo(parent, features);
- }
-
- protected void createProductInfo(Composite parent) {
- dashboard.createProductInfo(parent, products);
- }
-
- protected void createUserInfo(Composite parent) {
- dashboard.createUserInfo(parent, users);
- }
-
- protected void createAgreementInfo(Composite parent) {
- dashboard.createAgreementInfo(parent, agreements);
- }
-
- protected void createLicenseInfo(Composite parent) {
- dashboard.createLicenseInfo(parent, licenses);
- }
-
- protected void createFooterInfo(Composite parent) {
- dashboard.createFooterInfo(parent);
- }
-
- @Inject
- @Optional
- public void createdFeatureSet(@UIEventTopic(FeatureRegistryEvents.FEATURE_SET_CREATE) FeatureSet input) {
- dashboard.updateFeatureInfo(features);
- }
-
- @Inject
- @Optional
- public void deletedFeatureSet(@UIEventTopic(FeatureRegistryEvents.FEATURE_SET_DELETE) FeatureSet input) {
- dashboard.updateFeatureInfo(features);
- }
-
- @Inject
- @Optional
- public void createdFeature(@UIEventTopic(FeatureRegistryEvents.FEATURE_CREATE) Feature input) {
- dashboard.updateFeatureInfo(features);
- }
-
- @Inject
- @Optional
- public void deletedFeature(@UIEventTopic(FeatureRegistryEvents.FEATURE_DELETE) Feature input) {
- dashboard.updateFeatureInfo(features);
- }
-
- @Inject
- @Optional
- public void createdFeatureVersion(
- @UIEventTopic(FeatureRegistryEvents.FEATURE_VERSION_CREATE) FeatureVersion input) {
- dashboard.updateFeatureInfo(features);
- }
-
- @Inject
- @Optional
- public void deletedFeatureVersion(
- @UIEventTopic(FeatureRegistryEvents.FEATURE_VERSION_DELETE) FeatureVersion input) {
- dashboard.updateFeatureInfo(features);
- }
-
- @Inject
- @Optional
- public void createdProductLine(@UIEventTopic(ProductRegistryEvents.PRODUCT_LINE_CREATE) ProductLine input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void deletedProductLine(@UIEventTopic(ProductRegistryEvents.PRODUCT_LINE_DELETE) ProductLine input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void createdProduct(@UIEventTopic(ProductRegistryEvents.PRODUCT_CREATE) Product input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void deletedProduct(@UIEventTopic(ProductRegistryEvents.PRODUCT_DELETE) Product input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void createdProductVersion(
- @UIEventTopic(ProductRegistryEvents.PRODUCT_VERSION_CREATE) ProductVersion input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void deletedProductVersion(
- @UIEventTopic(ProductRegistryEvents.PRODUCT_VERSION_DELETE) ProductVersion input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void createdProductVersionFeature(
- @UIEventTopic(ProductRegistryEvents.PRODUCT_VERSION_FEATURE_CREATE) ProductVersionFeature input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void deletedProductVersionFeature(
- @UIEventTopic(ProductRegistryEvents.PRODUCT_VERSION_FEATURE_DELETE) ProductVersionFeature input) {
- dashboard.updateProductInfo(products);
- }
-
- @Inject
- @Optional
- public void createdUserOrigin(@UIEventTopic(UserRegistryEvents.USER_ORIGIN_CREATE) UserOrigin input) {
- dashboard.updateUserInfo(users);
- }
-
- @Inject
- @Optional
- public void deletedUserOrigin(@UIEventTopic(UserRegistryEvents.USER_ORIGIN_DELETE) UserOrigin input) {
- dashboard.updateUserInfo(users);
- }
-
- @Inject
- @Optional
- public void createdUser(@UIEventTopic(UserRegistryEvents.USER_CREATE) User input) {
- dashboard.updateUserInfo(users);
- }
-
- @Inject
- @Optional
- public void deletedUser(@UIEventTopic(UserRegistryEvents.USER_DELETE) User input) {
- dashboard.updateUserInfo(users);
- }
-
- @Inject
- @Optional
- public void createdAgreementsGroup(
- @UIEventTopic(AgreementRegistryEvents.AGREEMENT_GROUP_CREATE) AgreementGroup input) {
- dashboard.updateAgreementInfo(agreements);
- }
-
- @Inject
- @Optional
- public void deletedAgreementsGroup(
- @UIEventTopic(AgreementRegistryEvents.AGREEMENT_GROUP_DELETE) AgreementGroup input) {
- dashboard.updateAgreementInfo(agreements);
- }
-
- @Inject
- @Optional
- public void createdAgreement(@UIEventTopic(AgreementRegistryEvents.AGREEMENT_CREATE) Agreement input) {
- dashboard.updateAgreementInfo(agreements);
- }
-
- @Inject
- @Optional
- public void deletedAgreement(@UIEventTopic(AgreementRegistryEvents.AGREEMENT_DELETE) Agreement input) {
- dashboard.updateAgreementInfo(agreements);
- }
-
- @Inject
- @Optional
- public void createdLicensePlan(@UIEventTopic(LicenseRegistryEvents.LICENSE_PLAN_CREATE) LicensePlan input) {
- dashboard.updateLicenseInfo(licenses);
- }
-
- @Inject
- @Optional
- public void deletedLicensePlan(@UIEventTopic(LicenseRegistryEvents.LICENSE_PLAN_DELETE) LicensePlan input) {
- dashboard.updateLicenseInfo(licenses);
- }
-
- @PreDestroy
- public void preDestroy(IEclipseContext context) {
- dashboard.dispose(context);
- }
-
- @Focus
- public void onFocus() {
-
- }
-
- @Persist
- public void save() {
-
- }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DefaultDashboardPanelAdvisor.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DefaultDashboardPanelAdvisor.java
deleted file mode 100644
index 9b2b32254..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DefaultDashboardPanelAdvisor.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.panel;
-
-import java.util.Collections;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.passage.lic.agreements.model.meta.AgreementsPackage;
-import org.eclipse.passage.lic.features.model.meta.FeaturesPackage;
-import org.eclipse.passage.lic.internal.e4.core.commands.ExecuteCommand;
-import org.eclipse.passage.lic.jface.resource.LicensingImages;
-import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage;
-import org.eclipse.passage.lic.products.model.meta.ProductsPackage;
-import org.eclipse.passage.lic.users.model.meta.UsersPackage;
-import org.eclipse.passage.loc.dashboard.ui.DashboardUi;
-import org.eclipse.passage.loc.internal.agreements.AgreementRegistry;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.DashboardUiMessages;
-import org.eclipse.passage.loc.internal.features.FeatureRegistry;
-import org.eclipse.passage.loc.internal.licenses.LicenseRegistry;
-import org.eclipse.passage.loc.internal.products.ProductRegistry;
-import org.eclipse.passage.loc.internal.users.UserRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-
-public class DefaultDashboardPanelAdvisor implements DashboardPanelAdvisor {
-
- private IEclipseContext eclipseContext;
-
- private DashboardPanelBlock featureSets;
- private DashboardPanelBlock features;
- private DashboardPanelBlock featureVersions;
-
- private DashboardPanelBlock productLines;
- private DashboardPanelBlock products;
- private DashboardPanelBlock productVersions;
- private DashboardPanelBlock productVersionFeatures;
-
- private DashboardPanelBlock userOrigins;
- private DashboardPanelBlock users;
-
- private DashboardPanelBlock licensePlans;
-
- private DashboardPanelBlock agreementsGroups;
- private DashboardPanelBlock agreements;
-
- @Override
- public void init(IEclipseContext context) {
- this.eclipseContext = context;
- }
-
- @Override
- public void createHeaderInfo(Composite parent) {
- Label label = new Label(parent, SWT.NONE);
- label.setLayoutData(
- GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 10).grab(true, false).create());
- label.setFont(JFaceResources.getBannerFont());
- label.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_overview);
- }
-
- @Override
- public void createFeatureInfo(Composite parent, FeatureRegistry featureRegistry) {
- Group group = new Group(parent, SWT.NONE);
- group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- group.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
- group.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_group);
- createLinks(group, FeaturesPackage.eNAME);
- featureSets = createFeatureSetBlock(group);
- features = createFeatureBlock(group);
- featureVersions = createFeatureVersionBlock(group);
- updateFeatureInfo(featureRegistry);
- }
-
- protected DashboardPanelBlock createFeatureSetBlock(Composite parent) {
- String domain = FeaturesPackage.eNAME;
- EClass eClass = FeaturesPackage.eINSTANCE.getFeatureSet();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_set_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_set_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_set_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_set_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createFeatureBlock(Composite parent) {
- String domain = FeaturesPackage.eNAME;
- EClass eClass = FeaturesPackage.eINSTANCE.getFeature();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createFeatureVersionBlock(Composite parent) {
- String domain = FeaturesPackage.eNAME;
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_version_title;
- EClass eClass = FeaturesPackage.eINSTANCE.getFeatureVersion();
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_version_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_version_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_feature_version_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- @Override
- public void updateFeatureInfo(FeatureRegistry featureRegistry) {
- featureSets.update(featureRegistry.featureSets());
- features.update(featureRegistry.features());
- featureVersions.update(featureRegistry.featureVersions());
- }
-
- @Override
- public void createProductInfo(Composite parent, ProductRegistry productRegistry) {
- Group group = new Group(parent, SWT.NONE);
- group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- group.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
- group.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_product_group);
- createLinks(group, ProductsPackage.eNAME);
- productLines = createProductLineBlock(group);
- products = createProductBlock(group);
- productVersions = createProductVersionBlock(group);
- productVersionFeatures = createProductVersionFeatureBlock(group);
- updateProductInfo(productRegistry);
- }
-
- protected DashboardPanelBlock createProductLineBlock(Composite parent) {
- String domain = ProductsPackage.eNAME;
- EClass eClass = ProductsPackage.eINSTANCE.getProductLine();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_line_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_line_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_line_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_line_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createProductBlock(Composite parent) {
- String domain = ProductsPackage.eNAME;
- EClass eClass = ProductsPackage.eINSTANCE.getProduct();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createProductVersionBlock(Composite parent) {
- String domain = ProductsPackage.eNAME;
- EClass eClass = ProductsPackage.eINSTANCE.getProductVersion();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_version_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_version_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_version_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_version_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createProductVersionFeatureBlock(Composite parent) {
- String domain = ProductsPackage.eNAME;
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_feature_title;
- EClass eClass = ProductsPackage.eINSTANCE.getProductVersionFeature();
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_feature_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_feature_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_product_feature_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- @Override
- public void updateProductInfo(ProductRegistry productRegistry) {
- productLines.update(productRegistry.productLines());
- products.update(productRegistry.products());
- productVersions.update(productRegistry.productVersions());
- productVersionFeatures.update(productRegistry.productVersionFeatures());
- }
-
- @Override
- public void createUserInfo(Composite parent, UserRegistry userRegistry) {
- Group group = new Group(parent, SWT.NONE);
- group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- group.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
- group.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_user_group);
- createLinks(group, UsersPackage.eNAME);
- userOrigins = createUserOriginBlock(group);
- users = createUserBlock(group);
- updateUserInfo(userRegistry);
- }
-
- protected DashboardPanelBlock createUserOriginBlock(Composite parent) {
- String domain = UsersPackage.eNAME;
- EClass eClass = UsersPackage.eINSTANCE.getUserOrigin();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_origin_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_origin_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_origin_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_origin_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createUserBlock(Composite parent) {
- String domain = UsersPackage.eNAME;
- EClass eClass = UsersPackage.eINSTANCE.getUser();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_user_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- @Override
- public void updateUserInfo(UserRegistry userRegistry) {
- userOrigins.update(userRegistry.userOrigins());
- users.update(userRegistry.users());
- }
-
- @Override
- public void createLicenseInfo(Composite parent, LicenseRegistry licenseRegistry) {
- Group group = new Group(parent, SWT.NONE);
- group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- group.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
- group.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_license_group);
- createLinks(group, LicensesPackage.eNAME);
- licensePlans = createLicensePlanBlock(group);
- updateLicenseInfo(licenseRegistry);
- }
-
- protected DashboardPanelBlock createLicensePlanBlock(Composite parent) {
- String domain = LicensesPackage.eNAME;
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_license_plan_title;
- EClass eClass = LicensesPackage.eINSTANCE.getLicensePlan();
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_license_plan_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_license_plan_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_license_plan_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createBlock(Composite parent, String domain, EClass eClass, String label, String info,
- String warning, String show) {
- DashboardPanelBlock block = new DashboardPanelBlock();
- Image image = getImage(eClass);
- block.createControl(parent, label, image);
- block.setInfo(info);
- block.setWarning(warning);
- String classifier = eClass.getName();
- block.configureShow(show, new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- executeShowCommand(domain, classifier);
- }
- });
- return block;
- }
-
- @Override
- public void updateLicenseInfo(LicenseRegistry licenseRegistry) {
- licensePlans.update(licenseRegistry.plans());
- }
-
- @Override
- public void createAgreementInfo(Composite parent, AgreementRegistry registry) {
- Group group = new Group(parent, SWT.NONE);
- group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- group.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
- group.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_group);
- createLinks(group, AgreementsPackage.eNAME);
- agreementsGroups = createAgreementsGroupBlock(group);
- agreements = createAgreementsBlock(group);
- updateAgreementInfo(registry);
- }
-
- @Override
- public void updateAgreementInfo(AgreementRegistry registry) {
- agreementsGroups.update(registry.groups());
- agreements.update(registry.agreements());
- }
-
- protected DashboardPanelBlock createAgreementsGroupBlock(Composite parent) {
- String domain = AgreementsPackage.eNAME;
- EClass eClass = AgreementsPackage.eINSTANCE.getAgreementGroup();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_group_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_group_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_group_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_group_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- protected DashboardPanelBlock createAgreementsBlock(Composite parent) {
- String domain = AgreementsPackage.eNAME;
- EClass eClass = AgreementsPackage.eINSTANCE.getAgreement();
- String label = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_title;
- String info = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_info;
- String warning = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_warning;
- String show = DashboardUiMessages.DefaultDashboardPanelAdvisor_agreement_show;
- return createBlock(parent, domain, eClass, label, info, warning, show);
- }
-
- @Override
- public void createFooterInfo(Composite parent) {
- GridDataFactory gdf = GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 10).grab(true, false);
- appendSummary(parent, gdf);
- appendIssueLicenseButton(parent, gdf, //
- DashboardUiMessages.DefaultDashboardPanelAdvisor_btn_issue_personal_text, //
- DashboardUiMessages.DefaultDashboardPanelAdvisor_btn_issue_personal_description, //
- this::executeIssueLicenseCommand);
- appendIssueLicenseButton(parent, gdf, //
- DashboardUiMessages.DefaultDashboardPanelAdvisor_btn_issue_floating_text, //
- DashboardUiMessages.DefaultDashboardPanelAdvisor_btn_issue_floating_description, //
- this::executeIssueFloatingLicenseCommand);
- }
-
- private void appendSummary(Composite parent, GridDataFactory gdf) {
- Label summary = new Label(parent, SWT.NONE);
- summary.setLayoutData(gdf.create());
- summary.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_summary);
- }
-
- private void appendIssueLicenseButton(Composite parent, GridDataFactory gdf, //
- String text, String tooltip, Runnable issuing) {
- Button issue = new Button(parent, SWT.PUSH);
- issue.setImage(LicensingImages.getImage(LicensesPackage.eINSTANCE.getPersonalLicensePack().getName()));
- issue.setLayoutData(gdf.create());
- issue.setText(text);
- issue.setToolTipText(tooltip);
- issue.addSelectionListener(SelectionListener.widgetSelectedAdapter(c -> issuing.run()));
- }
-
- protected void executeIssueLicenseCommand() {
- new ExecuteCommand(DashboardUi.COMMAND_ISSUE_LICENSE, eclipseContext).apply(Collections.emptyMap());
- }
-
- protected void executeIssueFloatingLicenseCommand() {
- new ExecuteCommand(DashboardUi.COMMAND_ISSUE_FLOATING_LICENSE, eclipseContext).apply(Collections.emptyMap());
- }
-
- protected void createLinks(Group group, String domain) {
- Link create = new Link(group, SWT.NONE);
- create.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_create_link);
- create.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).span(2, 1).create());
- create.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- executeCreateCommand(domain);
- }
- });
- Link open = new Link(group, SWT.NONE);
- open.setText(DashboardUiMessages.DefaultDashboardPanelAdvisor_load_link);
- open.setLayoutData(GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).span(2, 1).create());
- open.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- executeLoadCommand(domain);
- }
- });
- }
-
- protected void executeCreateCommand(String domain) {
- DashboardUi.executeCreateCommand(this.eclipseContext, domain);
- }
-
- protected void executeLoadCommand(String domain) {
- DashboardUi.executeLoadCommand(this.eclipseContext, domain);
- }
-
- protected void executeShowCommand(String domain, String classifier) {
- DashboardUi.executeShowCommand(this.eclipseContext, domain, classifier);
- }
-
- protected Image getImage(EClass eClass) {
- return LicensingImages.getImage(eClass.getName());
- }
-
- @Override
- public void dispose(IEclipseContext context) {
- this.eclipseContext = null;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseDetailsPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseDetailsPage.java
deleted file mode 100644
index b03e775f5..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseDetailsPage.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import java.util.function.Supplier;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack;
-import org.eclipse.passage.lic.licenses.model.described.DescribedPersonalLicense;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-
-@SuppressWarnings("restriction")
-public final class IssueLicenseDetailsPage extends TwoPhaseWizardPage {
-
- private final Supplier pack;
- private Text info;
-
- protected IssueLicenseDetailsPage(String name, Supplier pack) {
- super(name);
- this.pack = pack;
- setTitle(IssueLicensePageMessages.IssueLicenseDetailsPage_page_title);
- setDescription(IssueLicensePageMessages.IssueLicenseDetailsPage_page_description);
- }
-
- // TODO: into to Tab; + one Tab for each agreement
- @Override
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
- composite.setLayout(new GridLayout());
- this.info = new Text(composite, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.READ_ONLY | SWT.V_SCROLL);
- this.info.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- setControl(composite);
- Dialog.applyDialogFont(composite);
- }
-
- @Override
- void init() {
- info.setText(new DescribedPersonalLicense(pack.get()).get());
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicensePackPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicensePackPage.java
deleted file mode 100644
index 2fb1f1298..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicensePackPage.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further evolution
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
-import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
-import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
-import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
-import org.eclipse.emfforms.swt.core.EMFFormsSWTConstants;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.passage.lic.emf.validation.ErrorMessages;
-import org.eclipse.passage.lic.licenses.model.api.PersonalFeatureGrant;
-import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack;
-import org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed;
-import org.eclipse.passage.loc.internal.api.OperatorLicenseService;
-import org.eclipse.passage.loc.internal.api.PersonalLicenseRequest;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-class IssueLicensePackPage extends TwoPhaseWizardPage {
-
- private final IEclipseContext context;
- private final Supplier data;
- private final ErrorMessages validate;
- private PersonalLicensePack license;
- private Composite base;
-
- protected IssueLicensePackPage(String name, Supplier data, IEclipseContext context) {
- super(name);
- this.context = context;
- this.data = data;
- this.validate = new ErrorMessages();
- setTitle(IssueLicensePageMessages.IssueLicensePackPage_page_title);
- setDescription(IssueLicensePageMessages.IssueLicensePackPage_page_description);
- }
-
- @Override
- void init() {
- PersonalLicenseRequest request = data.get();
- if (license != null) {
- refillFormRequest(request);
- } else {
- createFormRequest(request);
- }
- buildPage();
- }
-
- private void createFormRequest(PersonalLicenseRequest request) {
- OperatorLicenseService service = context.get(OperatorLicenseService.class);
- license = service.createLicensePack(request);
- license.eAdapters().add(new EContentAdapter() {
- @Override
- public void notifyChanged(Notification notification) {
- setPageComplete(validatePage());
- }
- });
- }
-
- private void refillFormRequest(PersonalLicenseRequest request) {
- license.getLicense().setPlan(request.plan());
- license.getLicense().getProduct().setIdentifier(request.productIdentifier());
- license.getLicense().getProduct().setVersion(request.productVersion());
- license.getLicense().getUser().setIdentifier(request.user());
- EList grants = license.getGrants();
- for (PersonalFeatureGrant grant : grants) {
- ValidityPeriodClosed valid = (ValidityPeriodClosed) grant.getValid();
- valid.setFrom(request.validFrom());
- valid.setUntil(request.validUntil());
- }
- ValidityPeriodClosed valid = (ValidityPeriodClosed) license.getLicense().getValid();
- valid.setFrom(request.validFrom());
- valid.setUntil(request.validUntil());
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());
- composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());
- setControl(composite);
- base = new Composite(composite, SWT.NONE);
- base.setLayout(new GridLayout(1, false));
- base.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
- buildPage();
- Dialog.applyDialogFont(composite);
- }
-
- private void buildPage() {
- if (base == null || base.isDisposed()) {
- setPageComplete(false);
- return;
- }
- if (license != null) {
- // FIXME: AF: rework this hotfix for
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=576904
- Control[] children = base.getChildren();
- for (Control control : children) {
- control.dispose();
- }
- try {
- ECPSWTViewRenderer.INSTANCE.render(base, license, properties());
- base.layout();
- } catch (ECPRendererException e) {
- e.printStackTrace();
- }
- }
- setPageComplete(validatePage());
- }
-
- private VViewModelProperties properties() {
- VViewModelProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
- properties.addInheritableProperty(EMFFormsSWTConstants.USE_ON_MODIFY_DATABINDING_KEY,
- EMFFormsSWTConstants.USE_ON_MODIFY_DATABINDING_VALUE);
- properties.addInheritableProperty("viewpoint", "wizard"); //$NON-NLS-1$ //$NON-NLS-2$
- new WithMentor(license, context).inProperties(properties);
- return properties;
- }
-
- protected boolean validatePage() {
- Optional errors = validate.apply(license);
- setErrorMessage(errors.orElse(null));// framework requires null
- return errors.isEmpty();
- }
-
- PersonalLicensePack pack() {
- return license;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseRequestPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseRequestPage.java
deleted file mode 100644
index a80947b92..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseRequestPage.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import java.time.LocalDate;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.ComposedPage;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.PageFields;
-import org.eclipse.passage.loc.internal.api.PersonalLicenseRequest;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.licenses.core.request.PersonalLicenseData;
-
-public final class IssueLicenseRequestPage implements Supplier {
-
- private final Supplier> plan;
- private final Supplier> user;
- private final Supplier> product;
- private final Supplier>> period;
- private final ComposedPage page;
-
- IssueLicenseRequestPage(IEclipseContext context, PersonalDataPack initial) {
- page = new ComposedPage(//
- IssueLicenseRequestPage.class.getSimpleName(), //
- IssueLicensePageMessages.IssueLicenseRequestPage_page_description, //
- context);
- PageFields block = page.withBlock();
- plan = block.withLicensePlan(initial.plan());
- user = block.withUser(initial.user());
- product = block.withProductVersion(initial.product());
- period = block.withPeriod();
- }
-
- @Override
- public IWizardPage get() {
- return page.get();
- }
-
- public PersonalLicenseRequest request() {
- return new PersonalLicenseData(//
- () -> user.get().get(), //
- () -> plan.get().get(), //
- () -> product.get().get(), //
- () -> from(), //
- () -> until());
- }
-
- private LocalDate from() {
- return period.get().get().get(0);
- }
-
- private LocalDate until() {
- return period.get().get().get(1);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseWizard.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseWizard.java
deleted file mode 100644
index 96fb2e0f0..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseWizard.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.services.events.IEventBroker;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.passage.lic.api.ServiceInvocationResult;
-import org.eclipse.passage.lic.base.diagnostic.NoSevereErrors;
-import org.eclipse.passage.lic.internal.jface.dialogs.licensing.DiagnosticDialog;
-import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.WizardInfoBar;
-import org.eclipse.passage.loc.internal.api.IssuedLicense;
-import org.eclipse.passage.loc.internal.api.OperatorLicenseService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.users.ui.UsersUi;
-import org.eclipse.passage.loc.workbench.LocWokbench;
-
-public class IssueLicenseWizard extends Wizard {
-
- private final IEclipseContext context;
- private final PersonalDataPack initial;
- private IssueLicenseRequestPage request;
- private IssueLicensePackPage pack;
- private IssueLicenseDetailsPage info;
-
- public IssueLicenseWizard(IEclipseContext context, PersonalDataPack initial) {
- this.context = context;
- this.initial = initial;
- setWindowTitle(IssueLicensePageMessages.IssueLicenseWizard_window_title);
- }
-
- @Override
- public void addPages() {
- request = new IssueLicenseRequestPage(context, initial);
- addPage(request.get());
- pack = new IssueLicensePackPage(IssueLicensePackPage.class.getName(), request::request, context);
- addPage(pack);
- info = new IssueLicenseDetailsPage(IssueLicenseDetailsPage.class.getName(), pack::pack);
- addPage(info);
- }
-
- @Override
- public IWizardPage getNextPage(IWizardPage page) {
- IWizardPage next = super.getNextPage(page);
- if (next instanceof TwoPhaseWizardPage) {
- ((TwoPhaseWizardPage) next).init();
- }
- return next;
- }
-
- @Override
- public boolean performFinish() {
- ServiceInvocationResult result = context.get(OperatorLicenseService.class)
- .issueLicensePack(pack.pack());
- if (!new NoSevereErrors().test(result.diagnostic())) {
- new WizardInfoBar(this).installError("Export failed"); //$NON-NLS-1$
- new DiagnosticDialog(getShell(), result.diagnostic()).open();
- return false;
- } else {
- new WizardInfoBar(this).wipe();
- new LicenseIssuedNotification(getShell()).showPersonal(result.data().get());
- broadcast(result.data().get());
- return true;
- }
- }
-
- private void broadcast(IssuedLicense result) {
- PersonalLicensePack userLicense = result.license();
- String perspectiveId = UsersUi.PERSPECTIVE_MAIN;
- LocWokbench.switchPerspective(context, perspectiveId);
- IEventBroker broker = context.get(IEventBroker.class);
- broker.post(LocWokbench.TOPIC_SHOW, userLicense);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/LicenseIssuedNotification.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/LicenseIssuedNotification.java
deleted file mode 100644
index e29e9dc28..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/LicenseIssuedNotification.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import java.nio.file.Path;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.passage.loc.internal.api.IssuedFloatingLicense;
-import org.eclipse.passage.loc.internal.api.IssuedLicense;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.program.Program;
-import org.eclipse.swt.widgets.Shell;
-
-public final class LicenseIssuedNotification {
-
- private final Shell shell;
-
- public LicenseIssuedNotification(Shell shell) {
- this.shell = shell;
- }
-
- public void showPersonal(IssuedLicense license) {
- show(//
- IssueLicensePageMessages.IssueLicenseWizard_ok_licensed_title, //
- String.format("%s\n%s", // //$NON-NLS-1$
- license.encrypted().toAbsolutePath().toString(), //
- license.decrypted().toAbsolutePath().toString()), //
- license.encrypted().getParent());
- }
-
- public void showFloating(IssuedFloatingLicense license) {
- show(//
- IssueLicensePageMessages.IssueFloatingLicenseWizard_success, //
- String.format(IssueLicensePageMessages.IssueFloatingLicenseWizard_success_description,
- license.residence().toAbsolutePath()), //
- license.residence());
- }
-
- public void show(String title, String description, Path residence) {
- show(title, description, residence, MessageDialog.INFORMATION);
- }
-
- public void show(String title, String description, Path residence, int kind) {
- MessageDialog dialog = new MessageDialog(//
- shell, //
- title, //
- null, //
- description, //
- kind, //
- new String[] { //
- "OK", //$NON-NLS-1$
- IssueLicensePageMessages.LicenseIssuedNotification_open_folder //
- }, 0);
- int result = dialog.open();
- if (result == 1) {
- Program.launch(residence.toAbsolutePath().toString());
- }
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/PersonalDataPack.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/PersonalDataPack.java
deleted file mode 100644
index 61fdd2aee..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/PersonalDataPack.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import java.util.Optional;
-
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-
-public final class PersonalDataPack {
- private final Optional plan;
- private final Optional user;
- private final Optional product;
-
- public PersonalDataPack(//
- Optional plan, //
- Optional user, //
- Optional product) {
- this.plan = plan;
- this.user = user;
- this.product = product;
- }
-
- public PersonalDataPack() {
- this(Optional.empty(), Optional.empty(), Optional.empty());
- }
-
- Optional plan() {
- return plan;
- }
-
- Optional user() {
- return user;
- }
-
- Optional product() {
- return product;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/TwoPhaseWizardPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/TwoPhaseWizardPage.java
deleted file mode 100644
index 57c0e7ddd..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/TwoPhaseWizardPage.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2022 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-
-/**
- * Except for the control construction phase, that WizardPage protocol demands,
- * this type of pages has initialization phase, where actual data can be read
- * and reflected in controls.
- */
-abstract class TwoPhaseWizardPage extends WizardPage {
-
- protected TwoPhaseWizardPage(String name) {
- super(name);
- }
-
- abstract void init();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/WithMentor.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/WithMentor.java
deleted file mode 100644
index d3ae2d3ac..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/WithMentor.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
-import org.eclipse.passage.loc.internal.api.LocObjectMentorProperty;
-import org.eclipse.passage.loc.internal.api.LocObjectMentorshipService;
-
-public final class WithMentor {
-
- private final EObject target;
- private final IEclipseContext context;
-
- public WithMentor(EObject target, IEclipseContext context) {
- this.target = Objects.requireNonNull(target);
- this.context = Objects.requireNonNull(context);
- }
-
- public void inProperties(VViewModelProperties properties) {
- mentor().ifPresent(mentor -> properties.addInheritableProperty(new LocObjectMentorProperty().get(), mentor));
- }
-
- private Optional mentor() {
- return Optional.ofNullable(context.get(LocObjectMentorshipService.class))//
- .flatMap(service -> service.mentor(target));
- }
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/FloatingDataPack.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/FloatingDataPack.java
deleted file mode 100644
index e6f078394..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/FloatingDataPack.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further evolution
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-
-public final class FloatingDataPack {
-
- private final Optional plan;
- private final List users;
- private final Optional product;
-
- public FloatingDataPack(//
- Optional plan, //
- List users, //
- Optional product) {
- this.plan = plan;
- this.users = users;
- this.product = product;
- }
-
- public FloatingDataPack(//
- Optional plan, //
- Optional user, //
- Optional product) {
- this.plan = plan;
- this.users = users(user);
- this.product = product;
- }
-
- private List users(Optional user) {
- if (user.isEmpty()) {
- return Collections.emptyList();
- }
- return Collections.singletonList(user.get());
- }
-
- public FloatingDataPack() {
- this(Optional.empty(), Collections.emptyList(), Optional.empty());
- }
-
- Optional plan() {
- return plan;
- }
-
- List users() {
- return users;
- }
-
- Optional product() {
- return product;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueCommand.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueCommand.java
deleted file mode 100644
index 280d72a10..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueCommand.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.passage.lic.api.ServiceInvocationResult;
-import org.eclipse.passage.lic.licenses.model.api.FloatingLicenseAccess;
-import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack;
-import org.eclipse.passage.lic.licenses.model.api.FloatingServerConnection;
-import org.eclipse.passage.lic.licenses.model.api.UserGrant;
-import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory;
-import org.eclipse.passage.loc.internal.api.IssuedFloatingLicense;
-import org.eclipse.passage.loc.internal.api.OperatorLicenseService;
-
-final class IssueCommand {
-
- private final IEclipseContext context;
- private final FloatingLicensePack pack;
- private final ServerConfigsRequest config;
-
- IssueCommand(IEclipseContext context, FloatingLicensePack pack, ServerConfigsRequest config) {
- this.context = context;
- this.pack = pack;
- this.config = config;
- }
-
- ServiceInvocationResult issue() {
- List personals = personalAccessConfigs();
- return context.get(OperatorLicenseService.class).issueFloatingLicensePack(pack, personals);
- }
-
- private List personalAccessConfigs() {
- if (!config.generate()) {
- return Collections.emptyList();
- }
- return pack.getUsers().stream()//
- .map(UserGrant::getUser) //
- .map(this::personalAccess)//
- .collect(Collectors.toList());
- }
-
- private FloatingLicenseAccess personalAccess(String user) {
- FloatingLicenseAccess access = LicensesFactory.eINSTANCE.createFloatingLicenseAccess();
- access.setUser(user);
- access.setOriginLicensePack(pack.getLicense().getIdentifier());
- access.setServer(server());
- return access;
- }
-
- private FloatingServerConnection server() {
- FloatingServerConnection connection = LicensesFactory.eINSTANCE.createFloatingServerConnection();
- connection.setIp(config.ip());
- connection.setPort(config.port());
- connection.setAuthentication(EcoreUtil.copy(pack.getHost().getAuthentication()));
- return connection;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueFloatingLicenseWizard.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueFloatingLicenseWizard.java
deleted file mode 100644
index 5bf084aad..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueFloatingLicenseWizard.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.passage.lic.api.ServiceInvocationResult;
-import org.eclipse.passage.lic.base.diagnostic.NoSevereErrors;
-import org.eclipse.passage.lic.internal.jface.dialogs.licensing.DiagnosticDialog;
-import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack;
-import org.eclipse.passage.loc.dashboard.ui.wizards.LicenseIssuedNotification;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.WizardInfoBar;
-import org.eclipse.passage.loc.internal.api.IssuedFloatingLicense;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-
-public final class IssueFloatingLicenseWizard extends Wizard {
-
- private final IEclipseContext context;
- private final FloatingDataPack initial;
- private Supplier license;
- private Supplier personals;
-
- public IssueFloatingLicenseWizard(IEclipseContext context, FloatingDataPack initial) {
- this.context = context;
- this.initial = initial;
- setWindowTitle(IssueLicensePageMessages.IssueFloatingLicenseWizard_title);
- }
-
- @Override
- public void addPages() {
- IssueLicenseRequestPage request = new IssueLicenseRequestPage(context, initial);
- addPage(request.get());
- IssueLicensePackPage pack = new IssueLicensePackPage("License information", request::request, context); //$NON-NLS-1$
- addPage(pack);
- IssueUserConfigsRequestPage configs = new IssueUserConfigsRequestPage(context);
- addPage(configs.get());
- personals = configs::request;
- license = pack::pack;
- }
-
- @Override
- public boolean performFinish() {
- ServiceInvocationResult result = new IssueCommand(context, license.get(),
- personals.get()).issue();
- if (!new NoSevereErrors().test(result.diagnostic())) {
- new WizardInfoBar(this).installError(IssueLicensePageMessages.IssueFloatingLicenseWizard_failure);
- new DiagnosticDialog(getShell(), result.diagnostic()).open();
- return false;
- }
- new WizardInfoBar(this).wipe();
- new LicenseIssuedNotification(getShell()).showFloating(result.data().get());
- return true;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicensePackPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicensePackPage.java
deleted file mode 100644
index 298364946..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicensePackPage.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further evolution
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.util.Arrays;
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
-import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
-import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
-import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
-import org.eclipse.emfforms.swt.core.EMFFormsSWTConstants;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.passage.lic.emf.validation.ErrorMessages;
-import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack;
-import org.eclipse.passage.loc.dashboard.ui.wizards.WithMentor;
-import org.eclipse.passage.loc.internal.api.FloatingLicenseRequest;
-import org.eclipse.passage.loc.internal.api.OperatorLicenseService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-public final class IssueLicensePackPage extends WizardPage {
-
- private final IEclipseContext context;
- private final Supplier data;
- private final ErrorMessages validate;
- private final Adapter update = new EContentAdapter() {
- @Override
- public void notifyChanged(Notification notification) {
- updatePageComplete();
- }
- };
- private FloatingLicensePack license;
- private Composite base;
-
- IssueLicensePackPage(String name, Supplier data, IEclipseContext context) {
- super(name);
- this.context = context;
- this.data = data;
- this.validate = new ErrorMessages();
- setTitle(IssueLicensePageMessages.IssueLicensePackPage_page_title);
- setDescription(IssueLicensePageMessages.IssueLicensePackPage_page_description);
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (visible) {
- init();
- }
- super.setVisible(visible);
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());
- composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());
- setControl(composite);
- base = new Composite(composite, SWT.NONE);
- base.setLayout(new GridLayout(1, false));
- base.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
- updatePage();
- Dialog.applyDialogFont(composite);
- }
-
- private void init() {
- createLicensePack();
- updatePage();
- }
-
- private void createLicensePack() {
- if (license != null) {
- license.eAdapters().remove(update);
- }
- license = context.get(OperatorLicenseService.class)//
- .createFloatingLicensePack(data.get(), Optional.ofNullable(license));
- license.eAdapters().add(update);
- }
-
- private void updatePage() {
- if (base == null || base.isDisposed()) {
- setPageComplete(false);
- return;
- }
- renderEmfForms();
- updatePageComplete();
- }
-
- private void updatePageComplete() {
- setPageComplete(validatePage());
- }
-
- private void renderEmfForms() {
- if (license == null) {
- return;
- }
- try {
- Arrays.asList(base.getChildren()).forEach(Control::dispose);
- ECPSWTViewRenderer.INSTANCE.render(base, license, properties());
- base.layout(); // guaranteed to exist and been not disposed
- } catch (ECPRendererException e) {
- // do nothing
- }
- }
-
- private VViewModelProperties properties() {
- VViewModelProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
- properties.addInheritableProperty("viewpoint", "wizard"); //$NON-NLS-1$ //$NON-NLS-2$
- properties.addInheritableProperty(EMFFormsSWTConstants.USE_ON_MODIFY_DATABINDING_KEY,
- EMFFormsSWTConstants.USE_ON_MODIFY_DATABINDING_VALUE);
- new WithMentor(license, context).inProperties(properties);
- return properties;
- }
-
- protected boolean validatePage() {
- Optional errors = validate.apply(license);
- setErrorMessage(errors.orElse(null));// framework requires null
- return errors.isEmpty();
- }
-
- FloatingLicensePack pack() {
- return license;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicenseRequestPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicenseRequestPage.java
deleted file mode 100644
index ea40b1269..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicenseRequestPage.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.time.LocalDate;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.ComposedPage;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.PageFields;
-import org.eclipse.passage.loc.internal.api.FloatingLicenseRequest;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.licenses.core.request.FloatingLicenseData;
-
-public final class IssueLicenseRequestPage implements Supplier {
-
- private final Supplier> plan;
- private final Supplier>> users;
- private final Supplier> product;
- private final Supplier>> period;
- private final Supplier> capacity;
- private final ComposedPage page;
-
- IssueLicenseRequestPage(IEclipseContext context, FloatingDataPack initial) {
- page = new ComposedPage(//
- IssueLicenseRequestPage.class.getSimpleName(), //
- IssueLicensePageMessages.IssueLicenseRequestPage_page_description, //
- context);
- PageFields units = page.withBlock();
- plan = units.withLicensePlan(initial.plan());
- users = units.withUsers(initial.users());
- product = units.withProductVersion(initial.product());
- period = units.withPeriod();
- capacity = units.withDefaultCapacity();
- }
-
- @Override
- public IWizardPage get() {
- return page.get();
- }
-
- FloatingLicenseRequest request() {
- return new FloatingLicenseData(//
- () -> users.get().get(), //
- () -> plan.get().get(), //
- () -> product.get().get(), //
- () -> from(), //
- () -> until(), //
- () -> capacity.get().get());
- }
-
- private LocalDate from() {
- return period.get().get().get(0);
- }
-
- private LocalDate until() {
- return period.get().get().get(1);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueUserConfigsRequestPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueUserConfigsRequestPage.java
deleted file mode 100644
index b97700ba6..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueUserConfigsRequestPage.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.ComposedPage;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.PageFields;
-import org.eclipse.passage.loc.dashboard.ui.wizards.license.SwitchableFields;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-
-public final class IssueUserConfigsRequestPage implements Supplier {
-
- private final ComposedPage page;
- private final Supplier> generate;
- private final Supplier> ip;
- private final Supplier> port;
-
- IssueUserConfigsRequestPage(IEclipseContext context) {
- page = new ComposedPage(//
- IssueUserConfigsRequestPage.class.getSimpleName(), //
- IssueLicensePageMessages.IssueUserConfigsRequestPage_page_description, //
- context);
- PageFields server = page.withBlock();
- port = server.withPort();
- ip = server.withIp();
- SwitchableFields switcher = page.withSwitchableBlock(
- IssueLicensePageMessages.IssueLicenseRequestPage_lbl_generate_floating_configs, //
- true, //
- server);
- generate = switcher.switcher();
- }
-
- ServerConfigsRequest request() {
- return new ServerConfigsRequest.Of(generate, ip, port).get();
- }
-
- @Override
- public IWizardPage get() {
- return page.get();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/ServerConfigsRequest.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/ServerConfigsRequest.java
deleted file mode 100644
index 3cbafa495..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/ServerConfigsRequest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.floating;
-
-import java.util.Optional;
-import java.util.function.Supplier;
-
-abstract class ServerConfigsRequest {
-
- private final boolean generate;
-
- protected ServerConfigsRequest(boolean generate) {
- this.generate = generate;
- }
-
- boolean generate() {
- return generate;
- }
-
- abstract String ip();
-
- abstract int port();
-
- static final class Skip extends ServerConfigsRequest {
-
- Skip() {
- super(false);
- }
-
- @Override
- String ip() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- int port() {
- throw new UnsupportedOperationException();
- }
-
- }
-
- static final class Active extends ServerConfigsRequest {
-
- private final String ip;
- private final int port;
-
- Active(String ip, int port) {
- super(true);
- this.ip = ip;
- this.port = port;
- }
-
- @Override
- String ip() {
- return ip;
- }
-
- @Override
- int port() {
- return port;
- }
-
- }
-
- static final class Of implements Supplier {
- private final Supplier> generate;
- private final Supplier> ip;
- private final Supplier> port;
-
- Of(Supplier> generate, Supplier> ip, Supplier> port) {
- this.generate = generate;
- this.ip = ip;
- this.port = port;
- }
-
- @Override
- public ServerConfigsRequest get() {
- return generate.get().get() //
- ? new Active(ip.get().get(), port.get().get()) //
- : new Skip();
-
- }
-
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ActivePeriodField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ActivePeriodField.java
deleted file mode 100644
index 93ce46c2a..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ActivePeriodField.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.time.LocalDate;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.widgets.Composite;
-
-final class ActivePeriodField implements Field> {
-
- private final DateField from;
- private final DateField until;
-
- ActivePeriodField(Runnable modified, LabelProvider labels, MandatoryService context) {
- from = new DateField(LocalDate.now(), //
- IssueLicensePageMessages.IssueLicenseRequestPage_lbl_valid_from, //
- modified, labels, context);
- until = new DateField(LocalDate.now().plusYears(1), //
- IssueLicensePageMessages.IssueLicenseRequestPage_lbl_valid_until, //
- modified, labels, context);
- }
-
- @Override
- public void installControll(Composite parent) {
- from.installControll(parent);
- until.installControll(parent);
- }
-
- @Override
- public Optional> data() {
- Optional start = from.data();
- Optional end = until.data();
- return (!start.isPresent() || !end.isPresent()) //
- ? Optional.empty() //
- : Optional.of(Arrays.asList(start.get(), end.get()));
- }
-
- @Override
- public Optional errorIfAny() {
- Optional start = from.error();
- if (start.isPresent()) {
- return start;
- }
- Optional end = until.error();
- if (end.isPresent()) {
- return end;
- }
- if (from.data().get().isAfter(until.data().get())) {
- return Optional.of(IssueLicensePageMessages.IssueLicenseRequestPage_e_reversed_period);
- }
- return Optional.empty();
- }
-
- @Override
- public void enable(boolean enable) {
- from.enable(enable);
- until.enable(enable);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/CapacityField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/CapacityField.java
deleted file mode 100644
index ed9cbd1bf..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/CapacityField.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-
-public final class CapacityField extends PositiveIntField {
-
- CapacityField(String name, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(1, name, modified, labels, context);
- }
-
- @Override
- protected String errorText() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_e_invalid_capacity;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ComposedPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ComposedPage.java
deleted file mode 100644
index f3c4780ef..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ComposedPage.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-
-public final class ComposedPage implements Supplier {
-
- private final String name;
- private final String description;
- private final IEclipseContext context;
- private final List blocks = new ArrayList<>();
- private LicenseDataPage page;
-
- public ComposedPage(String name, String description, IEclipseContext context) {
- this.name = name;
- this.description = description;
- this.context = context;
- }
-
- public PageFields withBlock() {
- PageFields block = new PageFields(this::page, context);
- blocks.add(block);
- return block;
- }
-
- public SwitchableFields withSwitchableBlock(String label, boolean value, Fields dependants) {
- SwitchableFields block = new SwitchableFields(context, label, value, dependants);
- blocks.add(blocks.indexOf(dependants), block);
- return block;
- }
-
- @Override
- public LicenseDataPage get() {
- page = new LicenseDataPage(name, description, units());
- return page;
- }
-
- private List> units() {
- return blocks.stream()//
- .flatMap(block -> block.fields().stream())//
- .collect(Collectors.toList());
- }
-
- private LicenseDataPage page() {
- return page;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/DateField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/DateField.java
deleted file mode 100644
index 439d0e166..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/DateField.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.time.LocalDate;
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.jface.dialogs.DateDialog;
-import org.eclipse.swt.widgets.Text;
-
-public final class DateField extends SelectableField {
-
- private final String name;
-
- DateField(LocalDate initial, String name, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(Optional.of(initial), modified, labels, context);
- this.name = name;
- }
-
- @Override
- protected String label() {
- return name;
- }
-
- @Override
- protected String errorText() {
- return String.format(IssueLicensePageMessages.IssueLicenseRequestPage_e_no_date, name);
- }
-
- @Override
- protected Optional select(Text control) {
- LocalDate current = source.get();
- Object data = control.getData();
- if (data instanceof LocalDate) {
- current = (LocalDate) data;
- }
- DateDialog dialog = new DateDialog(shell(), current);
- dialog.create();
- dialog.getShell().setText(name);
- if (dialog.open() == Window.OK) {
- current = dialog.getSelected();
- control.setData(current);
- }
- return Optional.of(current);
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Field.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Field.java
deleted file mode 100644
index ceb98fd07..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Field.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.swt.widgets.Composite;
-
-public interface Field {
-
- /**
- * Once in a lifetime physically creates UI control representing the field.
- */
- void installControll(Composite parent);
-
- /**
- * Return a value from the field's control, it any.
- */
- Optional data();
-
- /**
- * Is used by page validation. When called, reports an error, if the filed
- * control's value is not valid. Return {@code Optional.empty()} otherwise.
- */
- Optional errorIfAny();
-
- void enable(boolean enable);
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Fields.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Fields.java
deleted file mode 100644
index 88765e060..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Fields.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.List;
-
-public interface Fields {
-
- List> fields();
-
- void modified();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/IpAddressField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/IpAddressField.java
deleted file mode 100644
index c0e47c394..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/IpAddressField.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-
-final class IpAddressField extends TextField {
-
- protected IpAddressField(Runnable modified, LabelProvider labels, MandatoryService context) {
- super(Optional.of("localhost"), modified, labels, context); //$NON-NLS-1$
- }
-
- @Override
- protected String label() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_lbl_ip;
- }
-
- @Override
- protected String errorText() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_e_no_ip;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LabeledField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LabeledField.java
deleted file mode 100644
index ae11c61f1..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LabeledField.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-abstract class LabeledField implements Field {
-
- protected final Optional source;
- protected final Runnable modified;
- protected final LabelProvider labels;
- protected final MandatoryService context;
- private Optional widget = Optional.empty();
- private Shell shell;
- private Label label;
-
- protected LabeledField(Optional source, Runnable modified, LabelProvider labels, MandatoryService context) {
- this.source = source;
- this.modified = modified;
- this.labels = labels;
- this.context = context;
- }
-
- @Override
- public final void installControll(Composite parent) {
- shell = parent.getShell();
- installLabel(parent);
- widget = Optional.of(control(parent));
- installData(source);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public final Optional data() {
- return widget.flatMap(w -> Optional.ofNullable((T) w.getData()));
- }
-
- private void installLabel(Composite parent) {
- label = new Label(parent, SWT.NONE);
- label.setText(label());
- label.setLayoutData(GridDataFactory.fillDefaults().create());
- }
-
- protected final void installData(Optional origin) {
- T data = origin.orElse(null);
- widget.ifPresent(w -> w.setData(data));
- reflectData(data);
- }
-
- protected final Optional source() {
- return source;
- }
-
- protected final Shell shell() {
- return shell;
- }
-
- @Override
- public final Optional errorIfAny() {
- boolean enabled = widget.map(Control::isEnabled).orElse(false);
- return enabled ? error() : Optional.empty();
- }
-
- @Override
- public final void enable(boolean enable) {
- label.setEnabled(enable);
- widget.ifPresent(w -> w.setEnabled(enable));
- enableAuxiliaryControls(enable);
- }
-
- protected abstract String label();
-
- protected abstract Control control(Composite parent);
-
- protected abstract void reflectData(T data);
-
- protected abstract Optional error();
-
- protected abstract void enableAuxiliaryControls(boolean enable);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicenseDataPage.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicenseDataPage.java
deleted file mode 100644
index 8d379b987..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicenseDataPage.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-public final class LicenseDataPage extends WizardPage {
-
- private final List> units;
- private final String description;
-
- protected LicenseDataPage(String name, String description, List> units) {
- super(name);
- this.description = description;
- this.units = units;
- setTitle(IssueLicensePageMessages.IssueLicenseRequestPage_page_title);
- installDefaultMessage();
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite container = container(parent);
- setControl(container);
- units.forEach(unit -> unit.installControll(container));
- Dialog.applyDialogFont(container);
- }
-
- private Composite container(Composite parent) {
- Composite container = new Composite(parent, SWT.NONE);
- container.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());
- container.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());
- return container;
- }
-
- void validate() {
- setPageComplete(validatePage());
- }
-
- private boolean validatePage() {
- installDefaultMessage();
- for (Field> unit : units) {
- Optional error = unit.errorIfAny();
- if (error.isPresent()) {
- setMessage(error.get(), WizardPage.ERROR);
- return false;
- }
- }
- return true;
- }
-
- private void installDefaultMessage() {
- setMessage(description, WizardPage.NONE); // $NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicensePlanField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicensePlanField.java
deleted file mode 100644
index cb0d68f47..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicensePlanField.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further evolution
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.licenses.ui.SelectLicensePlan;
-import org.eclipse.passage.loc.internal.workbench.SelectRoot;
-import org.eclipse.swt.widgets.Text;
-
-public final class LicensePlanField extends SelectableField {
-
- LicensePlanField(Optional plan, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(plan, modified, labels, context);
- }
-
- @Override
- protected String label() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_lbl_license_plan;
- }
-
- @Override
- protected String errorText() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_e_no_license_plan;
- }
-
- @Override
- protected Optional select(Text control) {
- return new SelectRoot<>(new SelectLicensePlan(context, data()).get(), context).get();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PageFields.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PageFields.java
deleted file mode 100644
index cda7ec469..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PageFields.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.licenses.model.api.LicensePlan;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.workbench.MandatoryEclipseContext;
-import org.eclipse.passage.loc.workbench.viewers.DomainRegistryLabelProvider;
-
-public final class PageFields implements Fields {
-
- private final List> units = new ArrayList<>();
- private final MandatoryService context;
- private final LabelProvider labels;
- private final Supplier page;
-
- PageFields(Supplier page, IEclipseContext context) {
- this.context = new MandatoryEclipseContext(context);
- this.labels = new DomainRegistryLabelProvider();
- this.page = page;
- }
-
- public Supplier> withLicensePlan(Optional plan) {
- return with(new LicensePlanField(plan, this::modified, labels, context));
- }
-
- public Supplier> withUser(Optional user) {
- return with(new UserField(user, this::modified, labels, context));
- }
-
- public Supplier>> withUsers(List users) {
- return with(new UsersField(users, this::modified, labels, context));
- }
-
- public Supplier> withProductVersion(Optional product) {
- return with(new ProductVersionField(product, this::modified, labels, context));
- }
-
- public Supplier>> withPeriod() {
- return with(new ActivePeriodField(this::modified, labels, context));
- }
-
- public Supplier> withDefaultCapacity() {
- return with(new CapacityField(IssueLicensePageMessages.IssueLicenseRequestPage_lbl_default_capacity,
- this::modified, labels, context));
- }
-
- public Supplier> withSwitcher(String field, boolean value) {
- return with(new SwitchField(field, value, this::modified, labels, context));
- }
-
- public Supplier> withPort() {
- return with(new PortField(this::modified, labels, context));
- }
-
- public Supplier> withIp() {
- return with(new IpAddressField(this::modified, labels, context));
- }
-
- private Supplier> with(Field unit) {
- units.add(unit);
- return unit::data;
- }
-
- public void enable(boolean enable) {
- units.forEach(field -> field.enable(enable));
- }
-
- @Override
- public List> fields() {
- return units;
- }
-
- @Override
- public void modified() {
- page.get().validate();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PortField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PortField.java
deleted file mode 100644
index 8f5979f86..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PortField.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-
-public final class PortField extends PositiveIntField {
-
- PortField(Runnable modified, LabelProvider labels, MandatoryService context) {
- super(8090, IssueLicensePageMessages.IssueLicenseRequestPage_lbl_port, modified, labels, context);
- }
-
- @Override
- protected String errorText() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_e_invalid_port;
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PositiveIntField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PositiveIntField.java
deleted file mode 100644
index ffa69c642..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PositiveIntField.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Spinner;
-
-abstract class PositiveIntField extends LabeledField {
-
- private final String name;
- private Spinner spinner;
-
- PositiveIntField(int origin, String name, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(Optional.of(origin), modified, labels, context);
- this.name = name;
- }
-
- @Override
- protected final String label() {
- return name;
- }
-
- @Override
- protected final Control control(Composite parent) {
- spinner = new Spinner(parent, SWT.BORDER);
- spinner.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
- spinner.setMinimum(1);
- spinner.setIncrement(1);
- spinner.setPageIncrement(10);
- spinner.setMaximum(Integer.MAX_VALUE);
- spinner.addSelectionListener(SelectionListener.widgetSelectedAdapter(//
- event -> installData(Optional.of(spinner.getSelection()))));
- return spinner;
- }
-
- @Override
- protected final void reflectData(Integer data) {
- spinner.setSelection(data);
- }
-
- @Override
- public final Optional error() {
- Optional current = data();
- if (!current.isPresent()) {
- return Optional.of(errorText());
- }
- if (candidateIsValid(current.get())) {
- return Optional.empty();
- }
- return Optional.of(errorText());
- }
-
- @Override
- protected void enableAuxiliaryControls(boolean enable) {
- // do nothing
- }
-
- private boolean candidateIsValid(int candidate) {
- return candidate > 0;
- }
-
- protected abstract String errorText();
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ProductVersionField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ProductVersionField.java
deleted file mode 100644
index 6d65a0d8a..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ProductVersionField.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further evolution
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.products.model.api.Product;
-import org.eclipse.passage.lic.products.model.api.ProductVersion;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.products.ui.SelectProduct;
-import org.eclipse.passage.loc.internal.products.ui.SelectProductVersion;
-import org.eclipse.passage.loc.internal.workbench.SelectInner;
-import org.eclipse.swt.widgets.Text;
-
-public final class ProductVersionField extends SelectableField {
-
- ProductVersionField(Optional product, Runnable modified, LabelProvider labels,
- MandatoryService context) {
- super(product, modified, labels, context);
- }
-
- @Override
- protected String label() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_lbl_product_version;
- }
-
- @Override
- protected String errorText() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_e_no_product_version;
- }
-
- @Override
- protected Optional select(Text control) {
- return new SelectInner(//
- new SelectProductVersion(context, data()).get(), //
- new SelectProduct(context, data().map(ProductVersion::getProduct)).get(), //
- context//
- ).get();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SelectableField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SelectableField.java
deleted file mode 100644
index c9eb1dc3c..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SelectableField.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter;
-
-import java.util.Collection;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-abstract class SelectableField extends LabeledField {
-
- private Text text;
- private Button select;
-
- protected SelectableField(Optional source, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(source, modified, labels, context);
- }
-
- @Override
- public Optional error() {
- return noData() ? Optional.of(errorText()) : Optional.empty();
- }
-
- @Override
- protected Control control(Composite parent) {
- installText(parent);
- installSelectButton(parent);
- return text;
- }
-
- @Override
- protected void reflectData(T data) {
- if (data instanceof Collection) {
- Collection> collection = (Collection>) data;
- String altogether = StreamSupport.stream(collection.spliterator(), false)//
- .map(labels::getText)//
- .collect(Collectors.joining(", ")); //$NON-NLS-1$
- String fit = altogether;
- if (altogether.length() > 100) {
- fit = altogether.substring(0, 80) + String.format("... %d users", collection.size()); //$NON-NLS-1$
- }
- text.setText(fit);
- text.setToolTipText(altogether);
- } else {
- text.setText(labels.getText(data));
- text.setToolTipText(""); //$NON-NLS-1$
- }
- }
-
- private void installText(Composite parent) {
- text = new Text(parent, SWT.READ_ONLY | SWT.BORDER);
- text.addModifyListener(m -> modified.run());
- text.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- }
-
- private void installSelectButton(Composite parent) {
- select = new Button(parent, SWT.PUSH);
- select.setText(IssueLicensePageMessages.IssueLicenseRequestPage_btn_select_text);
- select.addSelectionListener(widgetSelectedAdapter(event -> installData(select(text))));
- select.setLayoutData(GridDataFactory.fillDefaults().create());
- }
-
- private boolean noData() {
- Optional data = data();
- if (!data.isPresent()) {
- return true;
- }
- if (data.get() instanceof Collection>) {
- return ((Collection>) data.get()).isEmpty();
- }
- return false;
- }
-
- @Override
- protected void enableAuxiliaryControls(boolean enable) {
- select.setEnabled(enable);
- }
-
- @Override
- protected abstract String label();
-
- protected abstract String errorText();
-
- protected abstract Optional select(Text control);
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchField.java
deleted file mode 100644
index dff3958fb..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchField.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-
-final class SwitchField extends LabeledField {
-
- private final String name;
- private Button switcher;
-
- protected SwitchField(String name, boolean value, Runnable modified, LabelProvider labels,
- MandatoryService context) {
- super(Optional.of(value), modified, labels, context);
- this.name = name;
- }
-
- @Override
- public Optional error() {
- return Optional.empty();
- }
-
- @Override
- protected Control control(Composite parent) {
- installSwitch(parent);
- return switcher;
- }
-
- @Override
- protected void reflectData(Boolean data) {
- switcher.setSelection(data);
- }
-
- @Override
- protected void enableAuxiliaryControls(boolean enable) {
- // do nothing
- }
-
- private void installSwitch(Composite parent) {
- switcher = new Button(parent, SWT.CHECK);
- switcher.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> changeState()));
- switcher.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
- new Label(parent, SWT.NONE).setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- }
-
- private void changeState() {
- switcher.setData(switcher.getSelection());
- modified.run();
- }
-
- @Override
- protected String label() {
- return name;
- }
-
- protected String errorText() {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchableFields.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchableFields.java
deleted file mode 100644
index 8f81586cd..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchableFields.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Supplier;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.loc.internal.workbench.MandatoryEclipseContext;
-import org.eclipse.passage.loc.workbench.viewers.DomainRegistryLabelProvider;
-
-public final class SwitchableFields implements Fields {
-
- private final Fields dependants;
- private final Field switcher;
- private MandatoryService context;
- private LabelProvider labels;
-
- SwitchableFields(IEclipseContext context, String name, boolean value, Fields dependants) {
- this.context = new MandatoryEclipseContext(context);
- this.labels = new DomainRegistryLabelProvider();
- this.dependants = dependants;
- this.switcher = new SwitchField(name, value, this::modified, labels, this.context);
- }
-
- @Override
- public List> fields() {
- return Collections.singletonList(switcher);
- }
-
- @Override
- public final void modified() {
- enableDependants();
- dependants.modified();
- }
-
- public Supplier> switcher() {
- return switcher::data;
- }
-
- private void enableDependants() {
- Boolean enable = switcher.data().get();
- dependants.fields().forEach(field -> field.enable(enable));
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/TextField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/TextField.java
deleted file mode 100644
index 1c1b5b12a..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/TextField.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2021 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-abstract class TextField extends LabeledField {
-
- private Text text;
-
- protected TextField(Optional source, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(source, modified, labels, context);
- }
-
- @Override
- public Optional error() {
- return noData() ? Optional.of(errorText()) : Optional.empty();
- }
-
- private boolean noData() {
- return data().isEmpty() || data().get().trim().isEmpty();
- }
-
- @Override
- protected Control control(Composite parent) {
- installText(parent);
- return text;
- }
-
- @Override
- protected void reflectData(String data) {
- text.setText(labels.getText(data));
- }
-
- private void installText(Composite parent) {
- text = new Text(parent, SWT.BORDER);
- text.addModifyListener(m -> onModify());
- text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
- }
-
- private void onModify() {
- text.setData(text.getText().trim());
- modified.run();
- }
-
- @Override
- protected void enableAuxiliaryControls(boolean enable) {
- // do nothing
- }
-
- @Override
- protected abstract String label();
-
- protected abstract String errorText();
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UserField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UserField.java
deleted file mode 100644
index 2accc33c5..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UserField.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.users.ui.SelectUser;
-import org.eclipse.passage.loc.internal.workbench.SelectRoot;
-import org.eclipse.swt.widgets.Text;
-
-public final class UserField extends SelectableField {
-
- UserField(Optional user, Runnable modified, LabelProvider labels, MandatoryService context) {
- super(user, modified, labels, context);
- }
-
- @Override
- protected String label() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_lbl_user;
- }
-
- @Override
- protected String errorText() {
- return IssueLicensePageMessages.IssueLicenseRequestPage_e_no_user;
- }
-
- @Override
- protected Optional select(Text control) {
- return new SelectRoot<>(new SelectUser(context, data()).get(), context).get();
- }
-
-}
diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UsersField.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UsersField.java
deleted file mode 100644
index 717cb1b85..000000000
--- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UsersField.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020, 2024 ArSysOp
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0/.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * ArSysOp - initial API and implementation
- * ArSysOp - further support
- *******************************************************************************/
-package org.eclipse.passage.loc.dashboard.ui.wizards.license;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.passage.lic.api.MandatoryService;
-import org.eclipse.passage.lic.users.model.api.User;
-import org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages;
-import org.eclipse.passage.loc.internal.users.ui.SelectUsers;
-import org.eclipse.passage.loc.internal.workbench.SelectRoots;
-import org.eclipse.swt.widgets.Text;
-
-public final class UsersField extends SelectableField> {
-
- UsersField(Collection