From ff1f92f80f3ab93f369de5dccf867e6af0ea7e15 Mon Sep 17 00:00:00 2001 From: eparovyshnaya Date: Sun, 18 Aug 2024 09:33:21 +0300 Subject: [PATCH] [#1403] LOC: evolve to reduce maintenance cost shut down LOC sample project --- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 23 - .../OSGI-INF/l10n/bundle.properties | 22 - ...greements.core.AgreementDomainRegistry.xml | 12 - ...core.AgreementsSelectionCommandAdvisor.xml | 9 - .../about.html | 36 -- .../build.properties | 19 - .../agreements/AgreementRegistry.java | 31 -- .../agreements/AgreementRegistryEvents.java | 86 ---- .../core/AgreementDomainRegistry.java | 230 ---------- .../core/AgreementsDomainRegistryTracker.java | 115 ----- .../AgreementsSelectionCommandAdvisor.java | 65 --- .../core/i18n/AgreementsCoreMessages.java | 32 -- .../i18n/AgreementsCoreMessages.properties | 16 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 38 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...renderers.AgreementFileRendererService.xml | 9 - ...greementGroupIdentifierRendererService.xml | 9 - ...rs.AgreementsIdentifierRendererService.xml | 9 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 6 - .../plugin.xml | 24 -- .../AgreementsCreateElementCallback.java | 34 -- .../emfforms/parts/AgreementsDetailsPart.java | 46 -- .../renderers/AgreementFileRenderer.java | 52 --- .../AgreementFileRendererService.java | 54 --- .../emfforms/renderers/AgreementFormat.java | 67 --- ...reementGroupIdentifierRendererService.java | 55 --- .../AgreementIdentifierRenderer.java | 92 ---- .../AgreementsIdentifierRendererService.java | 55 --- .../renderers/BaseAgreementFileRenderer.java | 144 ------- .../renderers/LocatedAgreementFile.java | 81 ---- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 32 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...agreements.ui.AgreementsInstanceSupply.xml | 7 - .../about.html | 36 -- .../build.properties | 20 - .../fragment.e4xmi | 36 -- .../plugin.xml | 24 -- .../loc/agreements/ui/AgreementsUi.java | 21 - .../loc/agreements/ui/SelectedAgreement.java | 50 --- .../CreateAgreementsGroupHandler.java | 28 -- .../handlers/LoadAgreementsGroupHandler.java | 28 -- .../ui/AgreementsInstanceSupply.java | 35 -- .../agreements/ui/SelectAgreement.java | 58 --- .../agreements/ui/SelectAgreementsGroup.java | 58 --- .../agreements/ui/SupplyAgreementsGroup.java | 36 -- .../ui/i18n/AgreementsUiMessages.java | 34 -- .../ui/i18n/AgreementsUiMessages.properties | 18 - .../org.eclipse.passage.loc.api/.classpath | 7 - bundles/org.eclipse.passage.loc.api/.project | 41 -- .../META-INF/MANIFEST.MF | 48 --- .../OSGI-INF/l10n/bundle.properties | 22 - .../org.eclipse.passage.loc.api/about.html | 36 -- .../build.properties | 19 - .../passage/loc/internal/api/ClassSupply.java | 28 -- .../internal/api/ComposableClassSupply.java | 36 -- .../loc/internal/api/ComposedClassSupply.java | 57 --- .../loc/internal/api/EditingDomainSource.java | 21 - .../internal/api/FloatingLicenseRequest.java | 42 -- .../internal/api/GeneralLicenseRequest.java | 64 --- .../loc/internal/api/InstanceSupply.java | 34 -- .../internal/api/IssuedFloatingLicense.java | 23 - .../loc/internal/api/IssuedLicense.java | 27 -- .../loc/internal/api/LicensingEvents.java | 76 ---- .../internal/api/LocObjectMentorProperty.java | 24 -- .../api/LocObjectMentorshipService.java | 26 -- .../loc/internal/api/OperatorGear.java | 36 -- .../internal/api/OperatorGearSupplier.java | 20 - .../internal/api/OperatorLicenseService.java | 57 --- .../internal/api/PersonalLicenseRequest.java | 58 --- .../passage/loc/internal/api/ZeroOrMany.java | 56 --- .../passage/loc/internal/api/ZeroOrOne.java | 57 --- .../internal/api/workspace/Agreements.java | 46 -- .../loc/internal/api/workspace/Features.java | 33 -- .../internal/api/workspace/FolderHandle.java | 23 - .../loc/internal/api/workspace/Keys.java | 84 ---- .../api/workspace/KnownResources.java | 24 -- .../internal/api/workspace/LicensePacks.java | 19 - .../loc/internal/api/workspace/Licenses.java | 33 -- .../api/workspace/OperatorWorkspace.java | 31 -- .../loc/internal/api/workspace/Products.java | 33 -- .../api/workspace/ResourceHandle.java | 31 -- .../internal/api/workspace/ResourceType.java | 19 - .../loc/internal/api/workspace/Users.java | 33 -- .../internal/emf/DomainContentAdapter.java | 99 ----- .../internal/emf/EditingDomainRegistry.java | 47 --- .../emf/EditingDomainRegistryAccess.java | 25 -- .../internal/emf/LabeledDiagnostician.java | 47 --- .../internal/emf/SelectionCommandAdvisor.java | 20 - .../.classpath | 7 - .../.project | 41 -- .../META-INF/MANIFEST.MF | 37 -- .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 54 --- .../plugin.xml | 24 -- .../passage/loc/dashboard/ui/DashboardUi.java | 135 ------ .../ui/details/DashboardDetailsPart.java | 108 ----- .../ui/handlers/DashboardCreateHandler.java | 38 -- .../DashboardIssueFloatingLicenseHandler.java | 68 --- .../DashboardIssueLicenseHandler.java | 74 ---- .../ui/handlers/DashboardLoadHandler.java | 38 -- .../ui/handlers/DashboardShowHandler.java | 38 -- .../ui/panel/DashboardPanelAdvisor.java | 53 --- .../ui/panel/DashboardPanelBlock.java | 105 ----- .../ui/panel/DashboardPanelPart.java | 306 -------------- .../panel/DefaultDashboardPanelAdvisor.java | 393 ------------------ .../ui/wizards/IssueLicenseDetailsPage.java | 58 --- .../ui/wizards/IssueLicensePackPage.java | 153 ------- .../ui/wizards/IssueLicenseRequestPage.java | 73 ---- .../ui/wizards/IssueLicenseWizard.java | 87 ---- .../ui/wizards/LicenseIssuedNotification.java | 71 ---- .../ui/wizards/PersonalDataPack.java | 51 --- .../ui/wizards/TwoPhaseWizardPage.java | 30 -- .../loc/dashboard/ui/wizards/WithMentor.java | 42 -- .../ui/wizards/floating/FloatingDataPack.java | 71 ---- .../ui/wizards/floating/IssueCommand.java | 73 ---- .../floating/IssueFloatingLicenseWizard.java | 67 --- .../floating/IssueLicensePackPage.java | 148 ------- .../floating/IssueLicenseRequestPage.java | 78 ---- .../floating/IssueUserConfigsRequestPage.java | 56 --- .../floating/ServerConfigsRequest.java | 96 ----- .../ui/wizards/license/ActivePeriodField.java | 76 ---- .../ui/wizards/license/CapacityField.java | 30 -- .../ui/wizards/license/ComposedPage.java | 64 --- .../ui/wizards/license/DateField.java | 61 --- .../dashboard/ui/wizards/license/Field.java | 38 -- .../dashboard/ui/wizards/license/Fields.java | 23 - .../ui/wizards/license/IpAddressField.java | 37 -- .../ui/wizards/license/LabeledField.java | 101 ----- .../ui/wizards/license/LicenseDataPage.java | 74 ---- .../ui/wizards/license/LicensePlanField.java | 47 --- .../ui/wizards/license/PageFields.java | 102 ----- .../ui/wizards/license/PortField.java | 30 -- .../ui/wizards/license/PositiveIntField.java | 81 ---- .../wizards/license/ProductVersionField.java | 54 --- .../ui/wizards/license/SelectableField.java | 109 ----- .../ui/wizards/license/SwitchField.java | 80 ---- .../ui/wizards/license/SwitchableFields.java | 60 --- .../ui/wizards/license/TextField.java | 74 ---- .../ui/wizards/license/UserField.java | 47 --- .../ui/wizards/license/UsersField.java | 51 --- .../ui/wizards/license/WizardInfoBar.java | 45 -- .../ui/i18n/DashboardUiMessages.java | 117 ------ .../ui/i18n/DashboardUiMessages.properties | 115 ----- .../ui/i18n/IssueLicensePageMessages.java | 67 --- .../i18n/IssueLicensePageMessages.properties | 53 --- bundles/org.eclipse.passage.loc.e4/.classpath | 7 - bundles/org.eclipse.passage.loc.e4/.project | 41 -- .../META-INF/MANIFEST.MF | 13 - .../OSGI-INF/l10n/bundle.properties | 22 - .../build.properties | 18 - .../internal/e4/events/OperatorEvents.java | 49 --- .../e4/events/OperatorLicenseEvents.java | 54 --- .../e4/events/OperatorProductEvents.java | 45 -- .../.classpath | 7 - .../org.eclipse.passage.loc.edit.ui/.project | 41 -- .../META-INF/MANIFEST.MF | 25 -- .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 16 - .../plugin.xml | 24 -- .../edit/ui/DomainRegistryExplorerPart.java | 124 ------ .../edit/ui/DomainRegistryLabelProvider.java | 55 --- .../handlers/DomainRegistryRemoveHandler.java | 45 -- .../.classpath | 7 - .../org.eclipse.passage.loc.equinox/.project | 41 -- .../META-INF/MANIFEST.MF | 16 - .../OSGI-INF/l10n/bundle.properties | 22 - .../build.properties | 18 - .../internal/equinox/AgreementsService.java | 33 -- .../internal/equinox/BaseDomainRegistry.java | 191 --------- .../internal/equinox/OperatorGearAware.java | 28 -- .../equinox/OperatorProductService.java | 24 -- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 18 - .../OSGI-INF/l10n/bundle.properties | 22 - ...al.features.core.FeatureDomainRegistry.xml | 12 - ...s.core.FeaturesSelectionCommandAdvisor.xml | 9 - .../about.html | 36 -- .../build.properties | 19 - .../internal/features/FeatureRegistry.java | 34 -- .../features/FeatureRegistryEvents.java | 112 ----- .../features/core/FeatureDomainRegistry.java | 253 ----------- .../core/FeaturesDomainRegistryTracker.java | 180 -------- .../core/FeaturesSelectionCommandAdvisor.java | 74 ---- .../core/i18n/FeaturesCoreMessages.java | 31 -- .../core/i18n/FeaturesCoreMessages.properties | 17 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 36 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...erers.FeatureIdentifierRendererService.xml | 9 - ...rs.FeatureSetIdentifierRendererService.xml | 9 - .../about.html | 36 -- .../build.properties | 22 - .../fragment.e4xmi | 6 - .../plugin.xml | 31 -- .../parts/FeaturesCreateElementCallback.java | 34 -- .../emfforms/parts/FeaturesDetailsPart.java | 46 -- .../renderers/FeatureIdentifierRenderer.java | 92 ---- .../FeatureIdentifierRendererService.java | 55 --- .../FeatureSetIdentifierRendererService.java | 55 --- .../viewmodels/FeatureSet.view | 20 - .../.classpath | 7 - .../.project | 41 -- .../META-INF/MANIFEST.MF | 27 -- .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 37 -- .../plugin.xml | 24 -- .../passage/loc/features/ui/FeaturesUi.java | 36 -- .../ui/handlers/CreateFeatureSetHandler.java | 30 -- .../ui/handlers/LoadFeatureSetHandler.java | 30 -- .../features/ui/i18n/FeatureUiMessages.java | 28 -- .../ui/i18n/FeatureUiMessages.properties | 14 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 32 -- .../OSGI-INF/l10n/bundle.properties | 24 -- ...al.licenses.core.LicenseDomainRegistry.xml | 12 - ...censes.core.LicenseOperatorServiceImpl.xml | 14 - ...s.core.LicensesSelectionCommandAdvisor.xml | 9 - .../about.html | 36 -- .../build.properties | 21 - .../plugin.xml | 18 - .../schema/issue.exsd | 114 ----- .../internal/licenses/LicenseRegistry.java | 26 -- .../licenses/LicenseRegistryEvents.java | 122 ------ .../core/BaseIssuedFloatingLicense.java | 40 -- .../licenses/core/BaseIssuedLicense.java | 51 --- .../ContributedLicensePackIssueListener.java | 39 -- .../core/FloatingLicensePackFromRequest.java | 235 ----------- .../licenses/core/IssueFloatingLicense.java | 218 ---------- .../licenses/core/IssuePersonalLicense.java | 175 -------- .../licenses/core/LicenseAgreements.java | 102 ----- .../licenses/core/LicenseDomainRegistry.java | 184 -------- .../core/LicenseGrantFromRequest.java | 47 --- .../core/LicenseOperatorServiceImpl.java | 151 ------- .../core/LicensePackIssueListener.java | 28 -- .../licenses/core/LicensePackResidence.java | 74 ---- .../licenses/core/LicenseSignature.java | 93 ----- .../core/LicensesDomainRegistryTracker.java | 60 --- .../core/LicensesSelectionCommandAdvisor.java | 60 --- .../core/LicensingOperatorRequirement.java | 55 --- .../licenses/core/PersistedDecoded.java | 57 --- .../licenses/core/PersistedEncoded.java | 70 ---- .../core/PersonalLicensePackFromRequest.java | 71 ---- .../licenses/core/ProductPassword.java | 39 -- .../licenses/core/UpdateLicensePlan.java | 87 ---- .../core/i18n/LicenseTroubleCodeMessages.java | 32 -- .../LicenseTroubleCodeMessages.properties | 16 - .../core/i18n/LicensesCoreMessages.java | 63 --- .../core/i18n/LicensesCoreMessages.properties | 46 -- .../licenses/core/i18n/ReductionMessages.java | 32 -- .../core/i18n/ReductionMessages.properties | 19 - .../issue/ClosedValidityPeriodReduction.java | 60 --- .../issue/FeatureGrantCapacityReduction.java | 37 -- .../FloatingLicenseIssuingProtection.java | 110 ----- .../PersonalLicenseIssuingProtection.java | 74 ---- .../licenses/core/issue/Reduction.java | 19 - .../core/issue/UserGrantsAmountReduction.java | 40 -- .../core/request/FloatingLicenseData.java | 70 ---- .../core/request/GeneralLicenseData.java | 89 ---- .../core/request/PersonalLicenseData.java | 53 --- .../code/LicenseAgreementsAttachFailed.java | 24 -- .../trouble/code/LicenseIssuingFailed.java | 24 -- .../trouble/code/LicenseIssuingIsPartial.java | 24 -- .../trouble/code/LicenseValidationFailed.java | 24 -- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 45 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...orms.renderers.BaseTextRendererService.xml | 9 - ...ers.ConditionExpressionRendererService.xml | 9 - ...renderers.ConditionTypeRendererService.xml | 9 - ...erers.FeatureIdentifierRendererService.xml | 9 - ...rms.renderers.MatchRuleRendererService.xml | 9 - ...erers.ProductIdentifierRendererService.xml | 9 - ...enderers.ProductVersionRendererService.xml | 9 - .../about.html | 36 -- .../build.properties | 22 - .../fragment.e4xmi | 6 - .../plugin.xml | 40 -- .../parts/LicensePlanContentProvider.java | 61 --- .../parts/LicensesCreateElementCallback.java | 41 -- .../emfforms/parts/LicensesDetailsPart.java | 60 --- .../renderers/BaseTextRendererService.java | 99 ----- .../ConditionExpressionRendererService.java | 56 --- .../ConditionTypeRendererService.java | 56 --- .../FeatureIdentifierRendererService.java | 55 --- .../renderers/MatchRuleRendererService.java | 55 --- .../ProductIdentifierRendererService.java | 56 --- .../ProductVersionRendererService.java | 56 --- .../viewmodels/AgreementData.view | 30 -- .../viewmodels/EvaluationInstructions.view | 15 - .../viewmodels/FeatureGrant.view | 58 --- .../viewmodels/FloatingLicenseAccess.view | 20 - .../viewmodels/FloatingLicensePack.view | 25 -- .../viewmodels/FloatingLicenseRequisites.view | 40 -- .../viewmodels/FloatingServer.view | 15 - .../viewmodels/FloatingServerConnection.view | 20 - .../viewmodels/LicensePlan.view | 25 -- .../viewmodels/LicensePlanFeature.view | 25 -- .../viewmodels/PersonalFeatureGrant.view | 71 ---- .../viewmodels/PersonalLicensePack.view | 96 ----- .../viewmodels/ProductRef.view | 15 - .../viewmodels/UserGrant.view | 26 -- .../viewmodels/ValidityPeriodClosed.view | 15 - .../viewmodels/VersionMatch.view | 15 - .../.classpath | 7 - .../.gitignore | 1 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 32 -- .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 22 - .../fragment.e4xmi | 38 -- .../plugin.xml | 24 -- .../licenses/ui/SelectLicensePlan.java | 67 --- .../ui/handlers/CreateLicensePlanHandler.java | 30 -- .../ui/handlers/LicenseExportHandler.java | 128 ------ .../ui/handlers/OpenLicensePlanHandler.java | 30 -- .../licenses/ui/i18n/LicensesUiMessages.java | 40 -- .../ui/i18n/LicensesUiMessages.properties | 26 -- .../passage/loc/licenses/ui/LicensesUi.java | 21 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 18 - .../OSGI-INF/l10n/bundle.properties | 24 -- ...or.internal.gear.OperatorGearAvailable.xml | 7 - .../about.html | 36 -- .../build.properties | 19 - .../operator/internal/gear/DefaultGear.java | 84 ---- .../internal/gear/OperatorGearAvailable.java | 28 -- .../services/PassageEditingDomainSource.java | 34 -- .../.classpath | 7 - .../.project | 35 -- .../META-INF/MANIFEST.MF | 12 - .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 20 - .../content/help.xhtml | 98 ----- .../content/images/feature.png | Bin 400 -> 0 bytes .../content/images/icon.svg | 41 -- .../content/images/info.png | Bin 520 -> 0 bytes .../content/images/license.png | Bin 309 -> 0 bytes .../content/images/product.png | Bin 361 -> 0 bytes .../content/images/text.svg | 1 - .../content/images/user.png | Bin 416 -> 0 bytes .../content/root.xhtml | 82 ---- .../content/styles/bootstrap.min.css | 7 - .../content/styles/root.css | 93 ----- .../introContent.xml | 5 - .../plugin.xml | 54 --- .../intro/actions/ConfigureFeatureAction.java | 27 -- .../intro/actions/ConfigureProductAction.java | 27 -- .../intro/actions/CreateUserAction.java | 27 -- .../actions/IssueFloatingLicenseAction.java | 27 -- .../intro/actions/IssueLicenseAction.java | 27 -- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 20 - .../OSGI-INF/l10n/bundle.properties | 21 - ...pse.passage.loc.operator.product_3.1.0.pub | 19 - ...perator.seal.OperatorFrameworkSupplier.xml | 7 - .../about.html | 36 -- .../build.properties | 20 - .../config/log4j2.xml | 50 --- .../loc/operator/seal/OperatorFramework.java | 79 ---- .../seal/OperatorFrameworkSupplier.java | 29 -- .../.classpath | 7 - .../org.eclipse.passage.loc.operator/.project | 46 -- .../META-INF/MANIFEST.MF | 14 - .../OSGI-INF/l10n/bundle.properties | 41 -- .../about.html | 36 -- .../about.mappings | 14 - .../build.properties | 28 -- .../css/default.css | 61 --- .../images/about.png | Bin 10083 -> 0 bytes .../images/loc16.png | Bin 857 -> 0 bytes .../images/loc32.png | Bin 2061 -> 0 bytes .../images/loc48.png | Bin 1439 -> 0 bytes .../images/loc64.png | Bin 4382 -> 0 bytes .../licenses/epl-2.0.txt | 95 ----- .../plugin.xml | 63 --- .../splash.bmp | Bin 450054 -> 0 bytes .../src/.gitkeep | 0 .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 30 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...al.products.core.ProductDomainRegistry.xml | 12 - ...oducts.core.ProductOperatorServiceImpl.xml | 8 - ...s.core.ProductsSelectionCommandAdvisor.xml | 9 - .../about.html | 36 -- .../build.properties | 19 - .../internal/products/ProductRegistry.java | 39 -- .../products/ProductRegistryEvents.java | 138 ------ .../products/core/ConvertKeysReport.java | 123 ------ .../internal/products/core/ConvertedKeys.java | 154 ------- .../products/core/KeyPairGeneraged.java | 52 --- .../internal/products/core/KeyPairStored.java | 71 ---- .../products/core/KeyPairUpgraded.java | 58 --- .../products/core/ProductDomainRegistry.java | 307 -------------- .../internal/products/core/ProductKeys.java | 89 ---- .../core/ProductOperatorServiceImpl.java | 59 --- .../products/core/ProductVersionKeys.java | 140 ------- .../products/core/ProductVersionPassword.java | 42 -- .../core/ProductsDomainRegistryTracker.java | 257 ------------ .../core/ProductsSelectionCommandAdvisor.java | 78 ---- .../products/core/PublicKeyReplcated.java | 45 -- .../products/core/i18n/ConverterMessages.java | 33 -- .../core/i18n/ConverterMessages.properties | 20 - .../products/core/i18n/IssuingMessages.java | 30 -- .../core/i18n/IssuingMessages.properties | 16 - .../core/i18n/ProductsCoreMessages.java | 36 -- .../core/i18n/ProductsCoreMessages.properties | 23 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 36 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...erers.FeatureIdentifierRendererService.xml | 9 - ...ms.renderers.PrivateKeyRendererService.xml | 9 - ...rms.renderers.PublicKeyRendererService.xml | 9 - ...derers.RestrictionLevelRendererService.xml | 9 - .../about.html | 36 -- .../build.properties | 22 - .../fragment.e4xmi | 6 - .../plugin.xml | 31 -- .../parts/ProductsCreateElementCallback.java | 34 -- .../emfforms/parts/ProductsDetailsPart.java | 46 -- .../FeatureIdentifierRendererService.java | 55 --- .../renderers/PrivateKeyRenderer.java | 41 -- .../renderers/PrivateKeyRendererService.java | 54 --- .../renderers/ProductIdentifierRenderer.java | 92 ---- .../renderers/ProductVersionKeyRenderer.java | 62 --- .../renderers/ProductVersionRenderer.java | 78 ---- .../emfforms/renderers/PublicKeyRenderer.java | 43 -- .../renderers/PublicKeyRendererService.java | 54 --- .../RestrictionLevelRendererService.java | 55 --- .../viewmodels/ProductLine.view | 20 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 32 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...nal.products.ui.ProductsInstanceSupply.xml | 7 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 38 -- .../plugin.xml | 24 -- .../products/ui/ProductsInstanceSupply.java | 38 -- .../internal/products/ui/SelectProduct.java | 66 --- .../products/ui/SelectProductLine.java | 59 --- .../products/ui/SelectProductVersion.java | 66 --- .../internal/products/ui/SupplyProduct.java | 37 -- .../products/ui/SupplyProductLine.java | 35 -- .../products/ui/i18n/ProductsUiMessages.java | 32 -- .../ui/i18n/ProductsUiMessages.properties | 19 - .../passage/loc/products/ui/ProductsUi.java | 54 --- .../ui/handlers/ConvertKeysHandle.java | 26 -- .../ui/handlers/CreateProductLineHandler.java | 31 -- .../ui/handlers/LoadProductLineHandler.java | 30 -- .../ui/handlers/ProductExportHandler.java | 52 --- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 25 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...internal.users.core.UserDomainRegistry.xml | 12 - ...sers.core.UsersSelectionCommandAdvisor.xml | 9 - .../about.html | 36 -- .../build.properties | 19 - .../loc/internal/users/UserRegistry.java | 31 -- .../internal/users/UserRegistryEvents.java | 112 ----- .../users/core/UserDomainRegistry.java | 213 ---------- .../core/UsersDomainRegistryTracker.java | 185 --------- .../core/UsersSelectionCommandAdvisor.java | 66 --- .../users/core/i18n/UsersCoreMessages.java | 30 -- .../core/i18n/UsersCoreMessages.properties | 17 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 41 -- .../OSGI-INF/l10n/bundle.properties | 22 - ...ers.ConditionExpressionRendererService.xml | 9 - ...renderers.ConditionTypeRendererService.xml | 9 - ...rms.renderers.UserEmailRendererService.xml | 9 - ...rs.UserOriginIdentifierRendererService.xml | 9 - .../about.html | 36 -- .../build.properties | 22 - .../fragment.e4xmi | 6 - .../plugin.xml | 26 -- .../parts/UserOriginContentProvider.java | 57 --- .../parts/UsersCreateElementCallback.java | 41 -- .../emfforms/parts/UsersDetailsPart.java | 73 ---- .../ConditionExpressionRendererService.java | 55 --- .../ConditionTypeRendererService.java | 55 --- .../renderers/UserEmailRendererService.java | 55 --- .../UserOriginIdentifierRendererService.java | 55 --- .../viewmodels/User.view | 68 --- .../viewmodels/UserGroup.view | 59 --- .../viewmodels/UserOrigin.view | 20 - .../.classpath | 7 - .../org.eclipse.passage.loc.users.ui/.project | 46 -- .../META-INF/MANIFEST.MF | 32 -- .../OSGI-INF/l10n/bundle.properties | 22 - ....internal.users.ui.UsersInstanceSupply.xml | 7 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 36 -- .../plugin.xml | 24 -- .../loc/internal/users/ui/SelectUser.java | 66 --- .../internal/users/ui/SelectUserOrigin.java | 59 --- .../loc/internal/users/ui/SelectUsers.java | 68 --- .../internal/users/ui/SupplyUserOrigin.java | 35 -- .../users/ui/UsersInstanceSupply.java | 34 -- .../users/ui/i18n/UsersUiMessages.java | 32 -- .../users/ui/i18n/UsersUiMessages.properties | 18 - .../eclipse/passage/loc/users/ui/UsersUi.java | 21 - .../ui/handlers/CreateUserOriginHandler.java | 30 -- .../ui/handlers/LoadUserOriginHandler.java | 30 -- .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 57 --- .../OSGI-INF/l10n/bundle.properties | 22 - ....emfforms.LocWorkbenchEmfformsMigrator.xml | 4 - ...tendedMultiReferenceSWTRendererService.xml | 9 - .../about.html | 36 -- .../build.properties | 21 - .../fragment.e4xmi | 6 - .../plugin.xml | 30 -- .../LocWorkbenchEmfformsMigrator.java | 28 -- .../emfforms/OperatorDialogWrapper.java | 31 -- .../i18n/WorkbenchEmfformsMessages.java | 42 -- .../i18n/WorkbenchEmfformsMessages.properties | 22 - .../ExtendedMultiReferenceSWTRenderer.java | 118 ------ ...endedMultiReferenceSWTRendererService.java | 81 ---- .../workbench/emfforms/parts/DetailsView.java | 303 -------------- .../renderers/ComboControlRenderer.java | 47 --- .../ConditionExpressionRenderer.java | 75 ---- .../renderers/ConditionTypeRenderer.java | 76 ---- .../ExplainedComboControlRenderer.java | 85 ---- .../renderers/FileContentRenderer.java | 115 ----- .../emfforms/renderers/MatchRuleRenderer.java | 134 ------ .../renderers/MatchingRuleExplained.java | 74 ---- .../renderers/RestrictionLevelRenderer.java | 52 --- .../StructuredFeatureRendererService.java | 111 ----- .../renderers/TextWithButtonRenderer.java | 149 ------- .../renderers/ValidatedTextRenderer.java | 119 ------ .../emfforms/renderers/WithComboRenderer.java | 101 ----- .../.classpath | 7 - .../.project | 46 -- .../LOC.e4xmi | 100 ----- .../META-INF/MANIFEST.MF | 59 --- .../OSGI-INF/l10n/bundle.properties | 25 -- ...al.inspector.ui.LicensingColorRegistry.xml | 7 - ...oc.internal.workbench.LocClassMetadata.xml | 8 - ....loc.internal.workbench.LocClassSupply.xml | 8 - ...rnal.workbench.LocDomainRegistryAccess.xml | 9 - ...oc.internal.workbench.LocImageRegistry.xml | 7 - .../about.html | 36 -- .../build.properties | 21 - .../images/add.png | Bin 186 -> 0 bytes .../images/draft-decorator.png | Bin 215 -> 0 bytes .../images/edit.png | Bin 269 -> 0 bytes .../images/error-c.png | Bin 413 -> 0 bytes .../images/error.png | Bin 414 -> 0 bytes .../images/fatal-c.png | Bin 270 -> 0 bytes .../images/fatal.png | Bin 379 -> 0 bytes .../images/info-c.png | Bin 492 -> 0 bytes .../images/info.png | Bin 520 -> 0 bytes .../images/license-draft.png | Bin 519 -> 0 bytes .../images/license-error.png | Bin 550 -> 0 bytes .../images/license-exported.png | Bin 607 -> 0 bytes .../images/new.png | Bin 195 -> 0 bytes .../images/not-ok-decorator.png | Bin 266 -> 0 bytes .../images/ok-c.png | Bin 439 -> 0 bytes .../images/ok-decorator.png | Bin 307 -> 0 bytes .../images/ok.png | Bin 407 -> 0 bytes .../images/open.png | Bin 266 -> 0 bytes .../images/product-draft.png | Bin 620 -> 0 bytes .../images/product-error.png | Bin 706 -> 0 bytes .../images/product-published.png | Bin 598 -> 0 bytes .../images/remove.png | Bin 197 -> 0 bytes .../images/save.png | Bin 229 -> 0 bytes .../images/warn-c.png | Bin 415 -> 0 bytes .../images/warn.png | Bin 396 -> 0 bytes .../inspector/ui/LicensingColorRegistry.java | 40 -- .../loc/internal/workbench/BrandingAddon.java | 45 -- .../internal/workbench/CreateClassifier.java | 107 ----- .../loc/internal/workbench/CreateInner.java | 65 --- .../loc/internal/workbench/CreateRoot.java | 60 --- .../internal/workbench/LocClassMetadata.java | 69 --- .../internal/workbench/LocClassSupply.java | 70 ---- .../workbench/LocDomainRegistryAccess.java | 113 ----- .../internal/workbench/LocImageRegistry.java | 69 --- .../workbench/MandatoryEclipseContext.java | 53 --- .../internal/workbench/SelectFromDialog.java | 96 ----- .../loc/internal/workbench/SelectInner.java | 69 --- .../loc/internal/workbench/SelectRequest.java | 115 ----- .../loc/internal/workbench/SelectRoot.java | 65 --- .../loc/internal/workbench/SelectRoots.java | 69 --- .../workbench/SelectSeveralFromDialog.java | 96 ----- .../workbench/SupplySelectRequest.java | 46 -- .../workbench/i18n/WorkbenchMessages.java | 80 ---- .../i18n/WorkbenchMessages.properties | 67 --- .../workbench/registry/UnregisterAction.java | 47 --- .../registry/UnregisterConfirmation.java | 41 -- .../registry/UnregisterSelected.java | 53 --- .../workbench/registry/UnregisterUri.java | 42 -- .../wizards/BaseClassifierWizard.java | 132 ------ .../wizards/BaseClassifierWizardPage.java | 142 ------- .../wizards/InnerClassifierWizard.java | 113 ----- .../wizards/InnerClassifierWizardPage.java | 142 ------- .../wizards/RootClassifierWizard.java | 77 ---- .../wizards/RootClassifierWizardPage.java | 83 ---- .../eclipse/passage/loc/jface/LocImages.java | 27 -- .../passage/loc/jface/dialogs/Appearance.java | 103 ----- .../passage/loc/jface/dialogs/DateDialog.java | 66 --- .../dialogs/FilteredSelectionDialog.java | 190 --------- .../loc/jface/dialogs/LabelSearchFilter.java | 47 --- .../dialogs/ObjectSelectionStatusDialog.java | 102 ----- .../loc/jface/dialogs/ViewerSearchFilter.java | 66 --- .../passage/loc/workbench/LocLifeCycle.java | 32 -- .../passage/loc/workbench/LocWokbench.java | 198 --------- .../loc/workbench/dialogs/AboutDialog.java | 144 ------- .../dialogs/ApplicationBranding.java | 125 ------ .../workbench/dialogs/FileContentDialog.java | 77 ---- .../dialogs/ManageTextValuesDialog.java | 94 ----- .../workbench/dialogs/ManageValuesDialog.java | 50 --- .../handlers/ExitWorkbenchHandler.java | 45 -- .../handlers/OpenAboutDialogHandler.java | 36 -- .../handlers/OpenPerspectiveHandler.java | 58 --- .../loc/workbench/handlers/RedoHandler.java | 63 --- .../loc/workbench/handlers/SaveHandler.java | 34 -- .../loc/workbench/handlers/UndoHandler.java | 63 --- .../workbench/handlers/ValidateHandler.java | 73 ---- .../viewers/DomainRegistryLabelProvider.java | 57 --- .../moveto/lic/emf/edit/EClassName.java | 45 -- .../moveto/lic/emf/edit/EClassResources.java | 81 ---- .../lic/emf/edit/EObjectDefaultName.java | 47 --- .../lic/emf/edit/EObjectNameIdentifier.java | 45 -- .../emf/edit/i18n/EmfEditMessages.java | 27 -- .../emf/edit/i18n/EmfEditMessages.properties | 14 - .../.classpath | 7 - .../.project | 46 -- .../META-INF/MANIFEST.MF | 16 - .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 19 - .../loc/workspace/CollectiveWorkspace.java | 79 ---- .../loc/workspace/DomainFileExtension.java | 28 -- .../loc/workspace/HomeBasedAgreements.java | 62 --- .../passage/loc/workspace/HomeBasedKeys.java | 70 ---- .../loc/workspace/HomeBasedLicensePacks.java | 37 -- .../loc/workspace/LoadResourceSet.java | 59 --- .../loc/workspace/LocalFileHandle.java | 69 --- .../loc/workspace/LocalFolderHandle.java | 32 -- .../loc/workspace/StoreResourceSet.java | 47 --- .../loc/workspace/UncertainFeatures.java | 28 -- .../loc/workspace/UncertainLicenses.java | 28 -- .../loc/workspace/UncertainProducts.java | 28 -- .../passage/loc/workspace/UncertainUsers.java | 28 -- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 55 --- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 73 ---- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 41 -- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 55 --- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 55 --- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 69 --- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 55 --- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 55 --- .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../build.properties | 15 - .../feature.properties | 24 -- .../feature.xml | 76 ---- pom.xml | 1 - .../.project | 17 - .../org.eclipse.core.resources.prefs | 2 - .../common-license.licen | 24 -- .../ico/16.png | Bin 857 -> 0 bytes .../ico/16_8.png | Bin 1302 -> 0 bytes .../ico/32.png | Bin 2061 -> 0 bytes .../ico/32_8.png | Bin 2078 -> 0 bytes .../ico/48.png | Bin 1439 -> 0 bytes .../ico/48_8.png | Bin 1126 -> 0 bytes ...lipse.passage.loc.operator.product.product | 67 --- .../pom.xml | 106 ----- .../pom.xml | 83 ---- .../category.xml | 45 -- .../pom.xml | 54 --- .../.classpath | 11 - .../.project | 34 -- .../org.eclipse.core.resources.prefs | 2 - .../.settings/org.eclipse.jdt.core.prefs | 101 ----- .../.settings/org.eclipse.jdt.ui.prefs | 122 ------ .../org.eclipse.pde.ds.annotations.prefs | 8 - .../.settings/org.eclipse.pde.prefs | 34 -- .../META-INF/MANIFEST.MF | 11 - .../OSGI-INF/l10n/bundle.properties | 23 - .../about.html | 36 -- .../build.properties | 18 - .../api/tests/ComposedClassMetadataTest.java | 57 --- .../loc/api/tests/ZeroOneManyTest.java | 66 --- .../.classpath | 11 - .../.project | 34 -- .../org.eclipse.core.resources.prefs | 2 - .../META-INF/MANIFEST.MF | 11 - .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 18 - .../features/core/tests/ConstantsTest.java | 26 -- .../.classpath | 11 - .../.project | 34 -- .../org.eclipse.core.resources.prefs | 2 - .../.settings/org.eclipse.jdt.core.prefs | 101 ----- .../.settings/org.eclipse.jdt.ui.prefs | 122 ------ .../org.eclipse.pde.ds.annotations.prefs | 8 - .../.settings/org.eclipse.pde.prefs | 34 -- .../META-INF/MANIFEST.MF | 12 - .../OSGI-INF/l10n/bundle.properties | 22 - .../about.html | 36 -- .../build.properties | 18 - .../internal/workbench/AppearanceTest.java | 53 --- .../MandatoryEclipseContextTest.java | 47 --- .../internal/workbench/SelectRequestTest.java | 60 --- .../registry/UnregisterActionTest.java | 50 --- .../lic/emf/edit/tests/EClassNameTest.java | 43 -- .../emf/edit/tests/EClassResourcesTest.java | 44 -- .../edit/tests/EObjectDefaultNameTest.java | 43 -- .../edit/tests/EObjectNameIdentifierTest.java | 45 -- 773 files changed, 34082 deletions(-) delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/.project delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementDomainRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/OSGI-INF/org.eclipse.passage.loc.internal.agreements.core.AgreementsSelectionCommandAdvisor.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/about.html delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/AgreementRegistryEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsDomainRegistryTracker.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/AgreementsSelectionCommandAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.core/src/org/eclipse/passage/loc/internal/agreements/core/i18n/AgreementsCoreMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/.project delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementFileRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementGroupIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/OSGI-INF/org.eclipse.passage.loc.agreements.emfforms.renderers.AgreementsIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/about.html delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsCreateElementCallback.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/parts/AgreementsDetailsPart.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFileRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementFormat.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementGroupIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementIdentifierRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/AgreementsIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/BaseAgreementFileRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.emfforms/src/org/eclipse/passage/loc/agreements/emfforms/renderers/LocatedAgreementFile.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/OSGI-INF/org.eclipse.passage.loc.internal.agreements.ui.AgreementsInstanceSupply.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/AgreementsUi.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/SelectedAgreement.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/CreateAgreementsGroupHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/agreements/ui/handlers/LoadAgreementsGroupHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/AgreementsInstanceSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreement.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SelectAgreementsGroup.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/SupplyAgreementsGroup.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.agreements.ui/src/org/eclipse/passage/loc/internal/agreements/ui/i18n/AgreementsUiMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.api/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.api/.project delete mode 100644 bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.api/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.api/about.html delete mode 100644 bundles/org.eclipse.passage.loc.api/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ClassSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposableClassSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ComposedClassSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/EditingDomainSource.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/FloatingLicenseRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/GeneralLicenseRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/InstanceSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedFloatingLicense.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/IssuedLicense.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LicensingEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorProperty.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/LocObjectMentorshipService.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGear.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorGearSupplier.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/OperatorLicenseService.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/PersonalLicenseRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrMany.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOrOne.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Agreements.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Features.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/FolderHandle.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Keys.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/KnownResources.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/LicensePacks.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Licenses.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/OperatorWorkspace.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Products.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceHandle.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/ResourceType.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/workspace/Users.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/DomainContentAdapter.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/EditingDomainRegistryAccess.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/LabeledDiagnostician.java delete mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/emf/SelectionCommandAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/DashboardUi.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/details/DashboardDetailsPart.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardCreateHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueFloatingLicenseHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardIssueLicenseHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardLoadHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/handlers/DashboardShowHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelBlock.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DashboardPanelPart.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/panel/DefaultDashboardPanelAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseDetailsPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicensePackPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseRequestPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/IssueLicenseWizard.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/LicenseIssuedNotification.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/PersonalDataPack.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/TwoPhaseWizardPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/WithMentor.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/FloatingDataPack.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueCommand.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueFloatingLicenseWizard.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicensePackPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueLicenseRequestPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/IssueUserConfigsRequestPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/floating/ServerConfigsRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ActivePeriodField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/CapacityField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ComposedPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/DateField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Field.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/Fields.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/IpAddressField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LabeledField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicenseDataPage.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/LicensePlanField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PageFields.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PortField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/PositiveIntField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/ProductVersionField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SelectableField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/SwitchableFields.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/TextField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UserField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/UsersField.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/WizardInfoBar.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.e4/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.e4/.project delete mode 100644 bundles/org.eclipse.passage.loc.e4/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.e4/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.e4/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorLicenseEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorProductEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryExplorerPart.java delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryLabelProvider.java delete mode 100644 bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/handlers/DomainRegistryRemoveHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.equinox/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.equinox/.project delete mode 100644 bundles/org.eclipse.passage.loc.equinox/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.equinox/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.equinox/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/AgreementsService.java delete mode 100644 bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/BaseDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorGearAware.java delete mode 100644 bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorProductService.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.features.core/.project delete mode 100644 bundles/org.eclipse.passage.loc.features.core/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.features.core/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeatureDomainRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeaturesSelectionCommandAdvisor.xml delete mode 100644 bundles/org.eclipse.passage.loc.features.core/about.html delete mode 100644 bundles/org.eclipse.passage.loc.features.core/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistryEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeatureDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesDomainRegistryTracker.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesSelectionCommandAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/.project delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureSetIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/about.html delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesCreateElementCallback.java delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesDetailsPart.java delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureSetIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.features.emfforms/viewmodels/FeatureSet.view delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/FeaturesUi.java delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/CreateFeatureSetHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/LoadFeatureSetHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/.project delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseDomainRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseOperatorServiceImpl.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicensesSelectionCommandAdvisor.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/about.html delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/schema/issue.exsd delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistryEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedFloatingLicense.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedLicense.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ContributedLicensePackIssueListener.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/FloatingLicensePackFromRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssueFloatingLicense.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssuePersonalLicense.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseAgreements.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseGrantFromRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseOperatorServiceImpl.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackIssueListener.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackResidence.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseSignature.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesDomainRegistryTracker.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesSelectionCommandAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensingOperatorRequirement.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedDecoded.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedEncoded.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersonalLicensePackFromRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ProductPassword.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/UpdateLicensePlan.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/ClosedValidityPeriodReduction.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FeatureGrantCapacityReduction.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FloatingLicenseIssuingProtection.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/PersonalLicenseIssuingProtection.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/Reduction.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/UserGrantsAmountReduction.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/FloatingLicenseData.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/GeneralLicenseData.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/PersonalLicenseData.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseAgreementsAttachFailed.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingFailed.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingIsPartial.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseValidationFailed.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/.project delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.BaseTextRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionExpressionRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionTypeRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.FeatureIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.MatchRuleRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductVersionRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/about.html delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensePlanContentProvider.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesCreateElementCallback.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesDetailsPart.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/BaseTextRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionExpressionRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionTypeRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/FeatureIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/MatchRuleRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductVersionRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/AgreementData.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/EvaluationInstructions.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FeatureGrant.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseAccess.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicensePack.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseRequisites.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServer.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServerConnection.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlan.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlanFeature.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalFeatureGrant.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalLicensePack.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ProductRef.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/UserGrant.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ValidityPeriodClosed.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/VersionMatch.view delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/.gitignore delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/SelectLicensePlan.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/CreateLicensePlanHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/LicenseExportHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/OpenLicensePlanHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/licenses/ui/LicensesUi.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/.project delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/org.eclipse.passage.loc.operator.internal.gear.OperatorGearAvailable.xml delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/about.html delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/DefaultGear.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/OperatorGearAvailable.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/services/PassageEditingDomainSource.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/.project delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/about.html delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/help.xhtml delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/feature.png delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/icon.svg delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/info.png delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/license.png delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/product.png delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/text.svg delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/images/user.png delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/root.xhtml delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/styles/bootstrap.min.css delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/content/styles/root.css delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/introContent.xml delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureFeatureAction.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureProductAction.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/CreateUserAction.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueFloatingLicenseAction.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueLicenseAction.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/.project delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.product_3.1.0.pub delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.seal.OperatorFrameworkSupplier.xml delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/about.html delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/config/log4j2.xml delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFramework.java delete mode 100644 bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFrameworkSupplier.java delete mode 100644 bundles/org.eclipse.passage.loc.operator/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.operator/.project delete mode 100644 bundles/org.eclipse.passage.loc.operator/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.operator/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator/about.html delete mode 100644 bundles/org.eclipse.passage.loc.operator/about.mappings delete mode 100644 bundles/org.eclipse.passage.loc.operator/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.operator/css/default.css delete mode 100644 bundles/org.eclipse.passage.loc.operator/images/about.png delete mode 100644 bundles/org.eclipse.passage.loc.operator/images/loc16.png delete mode 100644 bundles/org.eclipse.passage.loc.operator/images/loc32.png delete mode 100644 bundles/org.eclipse.passage.loc.operator/images/loc48.png delete mode 100644 bundles/org.eclipse.passage.loc.operator/images/loc64.png delete mode 100644 bundles/org.eclipse.passage.loc.operator/licenses/epl-2.0.txt delete mode 100644 bundles/org.eclipse.passage.loc.operator/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.operator/splash.bmp delete mode 100644 bundles/org.eclipse.passage.loc.operator/src/.gitkeep delete mode 100644 bundles/org.eclipse.passage.loc.products.core/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.products.core/.project delete mode 100644 bundles/org.eclipse.passage.loc.products.core/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.products.core/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductDomainRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductOperatorServiceImpl.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductsSelectionCommandAdvisor.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.core/about.html delete mode 100644 bundles/org.eclipse.passage.loc.products.core/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistryEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertKeysReport.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertedKeys.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairGeneraged.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairStored.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairUpgraded.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductKeys.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductOperatorServiceImpl.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionKeys.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionPassword.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsDomainRegistryTracker.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsSelectionCommandAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/PublicKeyReplcated.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/.project delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.FeatureIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PrivateKeyRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PublicKeyRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.RestrictionLevelRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/about.html delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsCreateElementCallback.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsDetailsPart.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/FeatureIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductIdentifierRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionKeyRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/RestrictionLevelRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.products.emfforms/viewmodels/ProductLine.view delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/OSGI-INF/org.eclipse.passage.loc.internal.products.ui.ProductsInstanceSupply.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/ProductsInstanceSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProduct.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductLine.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductVersion.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProduct.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProductLine.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/ProductsUi.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ConvertKeysHandle.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/CreateProductLineHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/LoadProductLineHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ProductExportHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.users.core/.project delete mode 100644 bundles/org.eclipse.passage.loc.users.core/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.users.core/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UserDomainRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UsersSelectionCommandAdvisor.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.core/about.html delete mode 100644 bundles/org.eclipse.passage.loc.users.core/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistryEvents.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UserDomainRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersDomainRegistryTracker.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersSelectionCommandAdvisor.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/.project delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionExpressionRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionTypeRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserEmailRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserOriginIdentifierRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/about.html delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UserOriginContentProvider.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersCreateElementCallback.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersDetailsPart.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionExpressionRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionTypeRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserEmailRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserOriginIdentifierRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/User.view delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserGroup.view delete mode 100644 bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserOrigin.view delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/.project delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/OSGI-INF/org.eclipse.passage.loc.internal.users.ui.UsersInstanceSupply.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/about.html delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUser.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUserOrigin.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUsers.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SupplyUserOrigin.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/UsersInstanceSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/UsersUi.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/CreateUserOriginHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/LoadUserOriginHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/.project delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.LocWorkbenchEmfformsMigrator.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.renderers.ExtendedMultiReferenceSWTRendererService.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/about.html delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/fragment.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/plugin.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/LocWorkbenchEmfformsMigrator.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/OperatorDialogWrapper.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/parts/DetailsView.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ComboControlRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionExpressionRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionTypeRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ExplainedComboControlRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/FileContentRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchRuleRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchingRuleExplained.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/RestrictionLevelRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/StructuredFeatureRendererService.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/TextWithButtonRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ValidatedTextRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/WithComboRenderer.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.workbench/.project delete mode 100644 bundles/org.eclipse.passage.loc.workbench/LOC.e4xmi delete mode 100644 bundles/org.eclipse.passage.loc.workbench/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.workbench/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.lic.internal.inspector.ui.LicensingColorRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassMetadata.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassSupply.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocImageRegistry.xml delete mode 100644 bundles/org.eclipse.passage.loc.workbench/about.html delete mode 100644 bundles/org.eclipse.passage.loc.workbench/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/add.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/draft-decorator.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/edit.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/error-c.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/error.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/fatal-c.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/fatal.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/info-c.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/info.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/license-draft.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/license-error.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/license-exported.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/new.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/not-ok-decorator.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/ok-c.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/ok-decorator.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/ok.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/open.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/product-draft.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/product-error.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/product-published.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/remove.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/save.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/warn-c.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/images/warn.png delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/lic/internal/inspector/ui/LicensingColorRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/BrandingAddon.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateClassifier.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateInner.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateRoot.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassMetadata.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassSupply.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocDomainRegistryAccess.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocImageRegistry.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContext.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectFromDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectInner.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoot.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoots.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectSeveralFromDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SupplySelectRequest.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterAction.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterConfirmation.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterSelected.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterUri.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizard.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizardPage.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizard.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizardPage.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizard.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizardPage.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/LocImages.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/Appearance.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/DateDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/FilteredSelectionDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/LabelSearchFilter.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ObjectSelectionStatusDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ViewerSearchFilter.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocLifeCycle.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocWokbench.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/AboutDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ApplicationBranding.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/FileContentDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageTextValuesDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageValuesDialog.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ExitWorkbenchHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenAboutDialogHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenPerspectiveHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/RedoHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/SaveHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/UndoHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ValidateHandler.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/viewers/DomainRegistryLabelProvider.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassName.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassResources.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectDefaultName.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectNameIdentifier.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.java delete mode 100644 bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.properties delete mode 100644 bundles/org.eclipse.passage.loc.workspace/.classpath delete mode 100644 bundles/org.eclipse.passage.loc.workspace/.project delete mode 100644 bundles/org.eclipse.passage.loc.workspace/META-INF/MANIFEST.MF delete mode 100644 bundles/org.eclipse.passage.loc.workspace/OSGI-INF/l10n/bundle.properties delete mode 100644 bundles/org.eclipse.passage.loc.workspace/about.html delete mode 100644 bundles/org.eclipse.passage.loc.workspace/build.properties delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/CollectiveWorkspace.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/DomainFileExtension.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedAgreements.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedKeys.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedLicensePacks.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LoadResourceSet.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFileHandle.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFolderHandle.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/StoreResourceSet.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainFeatures.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainLicenses.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainProducts.java delete mode 100644 bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainUsers.java delete mode 100644 features/org.eclipse.passage.loc.agreements.feature/.project delete mode 100644 features/org.eclipse.passage.loc.agreements.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.agreements.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.agreements.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.agreements.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.dashboard.feature/.project delete mode 100644 features/org.eclipse.passage.loc.dashboard.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.dashboard.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.dashboard.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.dashboard.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.edit.ui.feature/.project delete mode 100644 features/org.eclipse.passage.loc.edit.ui.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.edit.ui.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.edit.ui.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.edit.ui.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.features.feature/.project delete mode 100644 features/org.eclipse.passage.loc.features.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.features.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.features.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.features.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.licenses.feature/.project delete mode 100644 features/org.eclipse.passage.loc.licenses.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.licenses.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.licenses.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.licenses.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.operator.feature/.project delete mode 100644 features/org.eclipse.passage.loc.operator.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.operator.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.operator.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.operator.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.products.feature/.project delete mode 100644 features/org.eclipse.passage.loc.products.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.products.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.products.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.products.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.users.feature/.project delete mode 100644 features/org.eclipse.passage.loc.users.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.users.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.users.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.users.feature/feature.xml delete mode 100644 features/org.eclipse.passage.loc.workbench.feature/.project delete mode 100644 features/org.eclipse.passage.loc.workbench.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 features/org.eclipse.passage.loc.workbench.feature/build.properties delete mode 100644 features/org.eclipse.passage.loc.workbench.feature/feature.properties delete mode 100644 features/org.eclipse.passage.loc.workbench.feature/feature.xml delete mode 100644 products/org.eclipse.passage.loc.operator.product/.project delete mode 100644 products/org.eclipse.passage.loc.operator.product/.settings/org.eclipse.core.resources.prefs delete mode 100644 products/org.eclipse.passage.loc.operator.product/common-license.licen delete mode 100644 products/org.eclipse.passage.loc.operator.product/ico/16.png delete mode 100644 products/org.eclipse.passage.loc.operator.product/ico/16_8.png delete mode 100644 products/org.eclipse.passage.loc.operator.product/ico/32.png delete mode 100644 products/org.eclipse.passage.loc.operator.product/ico/32_8.png delete mode 100644 products/org.eclipse.passage.loc.operator.product/ico/48.png delete mode 100644 products/org.eclipse.passage.loc.operator.product/ico/48_8.png delete mode 100644 products/org.eclipse.passage.loc.operator.product/org.eclipse.passage.loc.operator.product.product delete mode 100644 products/org.eclipse.passage.loc.operator.product/pom.xml delete mode 100644 releng/org.eclipse.passage.loc.aggregator/pom.xml delete mode 100644 releng/org.eclipse.passage.loc.repository/category.xml delete mode 100644 releng/org.eclipse.passage.loc.repository/pom.xml delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.classpath delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.project delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.core.resources.prefs delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs delete mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs delete mode 100644 tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF delete mode 100644 tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties delete mode 100644 tests/org.eclipse.passage.loc.api.tests/about.html delete mode 100644 tests/org.eclipse.passage.loc.api.tests/build.properties delete mode 100644 tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ComposedClassMetadataTest.java delete mode 100644 tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/.classpath delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/.project delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/.settings/org.eclipse.core.resources.prefs delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/META-INF/MANIFEST.MF delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/OSGI-INF/l10n/bundle.properties delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/about.html delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/build.properties delete mode 100644 tests/org.eclipse.passage.loc.features.core.tests/src/org/eclipse/passage/loc/features/core/tests/ConstantsTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.classpath delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.project delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.core.resources.prefs delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.core.prefs delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.ds.annotations.prefs delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.prefs delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/META-INF/MANIFEST.MF delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/OSGI-INF/l10n/bundle.properties delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/about.html delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/build.properties delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/AppearanceTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContextTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/SelectRequestTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterActionTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassNameTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassResourcesTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectDefaultNameTest.java delete mode 100644 tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectNameIdentifierTest.java 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 users, Runnable modified, LabelProvider labels, MandatoryService context) { - super(Optional.of(users), modified, labels, context); - } - - @Override - protected String label() { - return IssueLicensePageMessages.IssueLicenseRequestPage_lbl_users; - } - - @Override - protected String errorText() { - return IssueLicensePageMessages.IssueLicenseRequestPage_e_no_user; - } - - @Override - protected Optional> select(Text control) { - return Optional.of(// - new SelectRoots<>(// - new SelectUsers(context, data().orElseGet(Collections::emptyList)).get(), context).get()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/WizardInfoBar.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/WizardInfoBar.java deleted file mode 100644 index 574510f83..000000000 --- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/dashboard/ui/wizards/license/WizardInfoBar.java +++ /dev/null @@ -1,45 +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.jface.dialogs.TitleAreaDialog; -import org.eclipse.jface.wizard.IWizard; -import org.eclipse.jface.wizard.IWizardContainer; - -public final class WizardInfoBar { - - private final IWizard wizard; - - public WizardInfoBar(IWizard wizard) { - this.wizard = wizard; - } - - public void installError(String error) { - infoBar().ifPresent(dialog -> dialog.setErrorMessage(error)); - } - - public void wipe() { - infoBar().ifPresent(dialog -> dialog.setMessage("")); //$NON-NLS-1$ - } - - private Optional infoBar() { - IWizardContainer container = wizard.getContainer(); - if (container instanceof TitleAreaDialog) { - return Optional.of((TitleAreaDialog) container); - } - return Optional.empty(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.java deleted file mode 100644 index 43930a468..000000000 --- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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: - * Elena Parovyshnaya - initial API and implementation - * ArSysOp - ongoing support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.dashboard.ui.i18n; - -import org.eclipse.osgi.util.NLS; - -public class DashboardUiMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.dashboard.ui.i18n.DashboardUiMessages"; //$NON-NLS-1$ - public static String DashboardDetailsPart_feature_create; - public static String DashboardDetailsPart_feature_description; - public static String DashboardDetailsPart_feature_set_create; - public static String DashboardDetailsPart_feature_set_description; - public static String DashboardDetailsPart_feature_version_create; - public static String DashboardDetailsPart_feature_version_description; - public static String DashboardDetailsPart_license_pack_create; - public static String DashboardDetailsPart_license_pack_description; - public static String DashboardDetailsPart_product_create; - public static String DashboardDetailsPart_product_description; - public static String DashboardDetailsPart_product_line_create; - public static String DashboardDetailsPart_product_line_description; - public static String DashboardDetailsPart_product_version_create; - public static String DashboardDetailsPart_product_version_description; - public static String DashboardDetailsPart_product_version_feature_create; - public static String DashboardDetailsPart_product_version_feature_description; - public static String DashboardDetailsPart_title; - public static String DashboardDetailsPart_user_create; - public static String DashboardDetailsPart_user_description; - public static String DashboardDetailsPart_user_origin_create; - public static String DashboardDetailsPart_user_origin_description; - public static String DashboardDetailsPart_welcome; - public static String DashboardPanelBlock_show_text; - public static String DefaultDashboardPanelAdvisor_btn_issue_personal_description; - public static String DefaultDashboardPanelAdvisor_btn_issue_personal_text; - public static String DefaultDashboardPanelAdvisor_btn_issue_floating_description; - public static String DefaultDashboardPanelAdvisor_btn_issue_floating_text; - public static String DefaultDashboardPanelAdvisor_create_link; - public static String DefaultDashboardPanelAdvisor_feature_show; - public static String DefaultDashboardPanelAdvisor_feature_group; - public static String DefaultDashboardPanelAdvisor_feature_info; - public static String DefaultDashboardPanelAdvisor_feature_set_show; - public static String DefaultDashboardPanelAdvisor_feature_set_info; - public static String DefaultDashboardPanelAdvisor_feature_set_title; - public static String DefaultDashboardPanelAdvisor_feature_set_warning; - public static String DefaultDashboardPanelAdvisor_feature_title; - public static String DefaultDashboardPanelAdvisor_feature_version_show; - public static String DefaultDashboardPanelAdvisor_feature_version_info; - public static String DefaultDashboardPanelAdvisor_feature_version_title; - public static String DefaultDashboardPanelAdvisor_feature_version_warning; - public static String DefaultDashboardPanelAdvisor_feature_warning; - public static String DefaultDashboardPanelAdvisor_license_group; - public static String DefaultDashboardPanelAdvisor_license_plan_show; - public static String DefaultDashboardPanelAdvisor_license_plan_info; - public static String DefaultDashboardPanelAdvisor_license_plan_title; - public static String DefaultDashboardPanelAdvisor_license_plan_warning; - public static String DefaultDashboardPanelAdvisor_load_link; - public static String DefaultDashboardPanelAdvisor_overview; - public static String DefaultDashboardPanelAdvisor_product_show; - public static String DefaultDashboardPanelAdvisor_product_feature_show; - public static String DefaultDashboardPanelAdvisor_product_feature_info; - public static String DefaultDashboardPanelAdvisor_product_feature_title; - public static String DefaultDashboardPanelAdvisor_product_feature_warning; - public static String DefaultDashboardPanelAdvisor_product_group; - public static String DefaultDashboardPanelAdvisor_product_info; - public static String DefaultDashboardPanelAdvisor_product_line_show; - public static String DefaultDashboardPanelAdvisor_product_line_info; - public static String DefaultDashboardPanelAdvisor_product_line_title; - public static String DefaultDashboardPanelAdvisor_product_line_warning; - public static String DefaultDashboardPanelAdvisor_product_title; - public static String DefaultDashboardPanelAdvisor_product_version_show; - public static String DefaultDashboardPanelAdvisor_product_version_info; - public static String DefaultDashboardPanelAdvisor_product_version_title; - public static String DefaultDashboardPanelAdvisor_product_version_warning; - public static String DefaultDashboardPanelAdvisor_product_warning; - public static String DefaultDashboardPanelAdvisor_summary; - public static String DefaultDashboardPanelAdvisor_user_show; - public static String DefaultDashboardPanelAdvisor_user_group; - public static String DefaultDashboardPanelAdvisor_user_info; - public static String DefaultDashboardPanelAdvisor_user_license_show; - public static String DefaultDashboardPanelAdvisor_user_license_info; - public static String DefaultDashboardPanelAdvisor_user_license_title; - public static String DefaultDashboardPanelAdvisor_user_license_warning; - public static String DefaultDashboardPanelAdvisor_user_origin_show; - public static String DefaultDashboardPanelAdvisor_user_origin_info; - public static String DefaultDashboardPanelAdvisor_user_origin_title; - public static String DefaultDashboardPanelAdvisor_user_origin_warning; - public static String DefaultDashboardPanelAdvisor_user_title; - public static String DefaultDashboardPanelAdvisor_user_warning; - - public static String DefaultDashboardPanelAdvisor_agreement_group; - public static String DefaultDashboardPanelAdvisor_agreement_group_show; - public static String DefaultDashboardPanelAdvisor_agreement_group_info; - public static String DefaultDashboardPanelAdvisor_agreement_group_title; - public static String DefaultDashboardPanelAdvisor_agreement_group_warning; - public static String DefaultDashboardPanelAdvisor_agreement_show; - public static String DefaultDashboardPanelAdvisor_agreement_info; - public static String DefaultDashboardPanelAdvisor_agreement_title; - public static String DefaultDashboardPanelAdvisor_agreement_warning; - - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, DashboardUiMessages.class); - } - - private DashboardUiMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.properties b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.properties deleted file mode 100644 index 2cb4da377..000000000 --- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/DashboardUiMessages.properties +++ /dev/null @@ -1,115 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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: -# Elena Parovyshnaya - initial API and implementation -# ArSysOp - ongoing support -############################################################################### -DashboardDetailsPart_feature_create=2. Create Features -DashboardDetailsPart_feature_description=The 'Feature' corresponds to the scenario for your product, that you want to restrict.\ -For example, you may want to restrict export to some proprietary format or other actions.\ -You do not need to describe all the functionality of your 'Product', but only the parts you want to restrict.\ -The 'identifier' attribute of the 'Feature' is important for the licensing configuration. -DashboardDetailsPart_feature_set_create=1. Create Feature Set -DashboardDetailsPart_feature_set_description=The 'Feature Set' groups the related functionality that may be distributed via several 'Products' -DashboardDetailsPart_feature_version_create=3. Create Feature Versions -DashboardDetailsPart_feature_version_description=The 'Feature Version' is a state of your 'Feature' that included to the 'Product Version'.\ -The 'version' attribute of the 'Feature Version' is important for the licensing configuration. -DashboardDetailsPart_license_pack_create=10. Create License Pack -DashboardDetailsPart_license_pack_description=The 'License Pack' is a container for 'License Grant' descriptors.\ -It has references to the 'Product Version' that is licensed to 'User'.\ -'License Pack' is intended to be delivered to the 'User' environment to allow usage of restricted functionality. -DashboardDetailsPart_product_create=5. Create Product -DashboardDetailsPart_product_description=The 'Product' corresponds to the ready-to-use item in your offering.\ -The 'identifier' attribute of the 'Product' is important for the licensing configuration. -DashboardDetailsPart_product_line_create=4. Create Product Line -DashboardDetailsPart_product_line_description=The 'Product Line' groups the related 'Products' in your offering. It may be different editions of the related functionality. -DashboardDetailsPart_product_version_create=6. Create Product Version -DashboardDetailsPart_product_version_description=The 'Product Version' corresponds to the binaries you are planning to release or already released for the 'Product'.\ -It is recommended to create the 'Product Version' for each external 'Product' shipment.\ -The 'version' attribute of the 'Product Version' is important for the licensing configuration.\ -The 'Product Version' completes the definition of licensing configuration that will be checked in the user environment. -DashboardDetailsPart_product_version_feature_create=7. Create Product Version Feature -DashboardDetailsPart_product_version_feature_description=The 'Product Version Feature' describes the state of functionality included to the 'Product Version'.\ -It is used as a reference to formulate 'License Pack'. -DashboardDetailsPart_title=Quick Start Guide -DashboardDetailsPart_user_create=9. Create User -DashboardDetailsPart_user_description=The 'User' describes the licensee of your functionality.\ -The 'identifier' of the 'User' is a part of the 'License Pack' definition. -DashboardDetailsPart_user_origin_create=8. Create User Origin -DashboardDetailsPart_user_origin_description=The 'User Origin' provides access to 'User' descriptors.\ -The typical example of the 'User Origin' is the list of users registered on your web site to download 'Product Version'. -DashboardDetailsPart_welcome=Welcome to %s -DashboardPanelBlock_show_text=Show -DefaultDashboardPanelAdvisor_btn_issue_personal_description=Issue personal license for a product -DefaultDashboardPanelAdvisor_btn_issue_personal_text=Issue Personal License -DefaultDashboardPanelAdvisor_btn_issue_floating_description=Issue floating license for a product -DefaultDashboardPanelAdvisor_btn_issue_floating_text=Issue Floating License -DefaultDashboardPanelAdvisor_create_link=Create -DefaultDashboardPanelAdvisor_feature_show=Select Feature to show -DefaultDashboardPanelAdvisor_feature_group=Features -DefaultDashboardPanelAdvisor_feature_info=You have %s Feature(s) defined.\nUse it to define the Feature Version(s) -DefaultDashboardPanelAdvisor_feature_set_show=Select Feature Set to show -DefaultDashboardPanelAdvisor_feature_set_info=You have %s Feature Set(s) defined.\nUse it to define the Features -DefaultDashboardPanelAdvisor_feature_set_title=Feature Sets: -DefaultDashboardPanelAdvisor_feature_set_warning=You have no Feature Sets defined.\nPlease create or load Feature Set definitions -DefaultDashboardPanelAdvisor_feature_title=Features: -DefaultDashboardPanelAdvisor_feature_version_show=Select Feature Version to show -DefaultDashboardPanelAdvisor_feature_version_info=You have %s Feature Version(s) defined.\nUse it to define the Product Version(s) -DefaultDashboardPanelAdvisor_feature_version_title=Feature Versions: -DefaultDashboardPanelAdvisor_feature_version_warning=You have no Feature Versions defined.\nPlease create it for the Feature(s) -DefaultDashboardPanelAdvisor_feature_warning=You have no Features defined.\nPlease create it for the Feature Set(s) -DefaultDashboardPanelAdvisor_license_group=Licenses -DefaultDashboardPanelAdvisor_license_plan_show=Select License Plan to show -DefaultDashboardPanelAdvisor_license_plan_info=You have %s License Plan(s) defined.\nUse it to define the License Plan Features -DefaultDashboardPanelAdvisor_license_plan_title=License Plans: -DefaultDashboardPanelAdvisor_license_plan_warning=You have no License Plans defined.\nPlease create or load License Plan definitions -DefaultDashboardPanelAdvisor_load_link=Load -DefaultDashboardPanelAdvisor_overview=Licensing data overview -DefaultDashboardPanelAdvisor_product_show=Select Product to show -DefaultDashboardPanelAdvisor_product_feature_show=Select Product Version Feature to show -DefaultDashboardPanelAdvisor_product_feature_info=You have %s Product Version Feature(s) defined.\nUse it to define License Grants -DefaultDashboardPanelAdvisor_product_feature_title=Product Features: -DefaultDashboardPanelAdvisor_product_feature_warning=You have no Product Version Features defined.\nPlease create it for the Product Verion(s) -DefaultDashboardPanelAdvisor_product_group=Products -DefaultDashboardPanelAdvisor_product_info=You have %s Product(s) defined.\nUse it to define the Product Versions -DefaultDashboardPanelAdvisor_product_line_show=Select Product Line to show -DefaultDashboardPanelAdvisor_product_line_info=You have %s Product Line(s) defined.\nUse it to define the Products -DefaultDashboardPanelAdvisor_product_line_title=Product Lines: -DefaultDashboardPanelAdvisor_product_line_warning=You have no Product Lines defined.\nPlease create or load Product Line definitions -DefaultDashboardPanelAdvisor_product_title=Products: -DefaultDashboardPanelAdvisor_product_version_show=Select Product Version to show -DefaultDashboardPanelAdvisor_product_version_info=You have %s Product Version (s) defined.\nUse it to define the Product Version Features -DefaultDashboardPanelAdvisor_product_version_title=Product Versions: -DefaultDashboardPanelAdvisor_product_version_warning=You have no Product Versions defined.\nPlease create it for the Product(s) -DefaultDashboardPanelAdvisor_product_warning=You have no Products defined.\nPlease create it for the Product Line(s) -DefaultDashboardPanelAdvisor_summary=Licensing data summary -DefaultDashboardPanelAdvisor_user_show=Select User to show -DefaultDashboardPanelAdvisor_user_group=Users -DefaultDashboardPanelAdvisor_user_info=You have %s User(s) defined.\nUse it to define the License Packs -DefaultDashboardPanelAdvisor_user_license_show=Select User License to show -DefaultDashboardPanelAdvisor_user_license_info=You have %s User Licenses(s) issued.\nUse it to define the Users -DefaultDashboardPanelAdvisor_user_license_title=User Licenses: -DefaultDashboardPanelAdvisor_user_license_warning=You have no User Licenses issued.\nYou can issue User License from the License Plan definitions -DefaultDashboardPanelAdvisor_user_origin_show=Select User Origin to show -DefaultDashboardPanelAdvisor_user_origin_info=You have %s User Origin(s) defined.\nUse it to define the Users -DefaultDashboardPanelAdvisor_user_origin_title=User Origins: -DefaultDashboardPanelAdvisor_user_origin_warning=You have no User Origins defined.\nPlease create or load User Origin definitions -DefaultDashboardPanelAdvisor_user_title=Users: -DefaultDashboardPanelAdvisor_user_warning=You have no Users defined.\nPlease create it for the User Origin(s) - -DefaultDashboardPanelAdvisor_agreement_group = License Agreements -DefaultDashboardPanelAdvisor_agreement_group_show = Select Agreements Group to show -DefaultDashboardPanelAdvisor_agreement_group_info = You have %d Groups of Agreements defined. Bind agreements to you Feature Versions or to License Plans directly. -DefaultDashboardPanelAdvisor_agreement_group_title = Groups of Agreements: -DefaultDashboardPanelAdvisor_agreement_group_warning = You have no License Agreements defined. It's strictly recommended to wrought out at lease an EULA for you products. -DefaultDashboardPanelAdvisor_agreement_show = Select Agreement to show -DefaultDashboardPanelAdvisor_agreement_info = You have %d Agreements registered. Assign Agreements in any amount to Feature Versions or to License Plans directly. -DefaultDashboardPanelAdvisor_agreement_title = Agreements: -DefaultDashboardPanelAdvisor_agreement_warning = You have no License Agreements defined. It's strictly recommended to wrought out at lease an EULA for you products. diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.java b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.java deleted file mode 100644 index 912ed492b..000000000 --- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.java +++ /dev/null @@ -1,67 +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.dashboard.ui.i18n; - -import org.eclipse.osgi.util.NLS; - -public final class IssueLicensePageMessages extends NLS { - - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.dashboard.ui.i18n.IssueLicensePageMessages"; //$NON-NLS-1$ - public static String IssueLicensePackPage_page_description; - public static String IssueLicensePackPage_page_title; - public static String IssueLicenseRequestPage_btn_select_text; - public static String IssueLicenseRequestPage_e_no_license_plan; - public static String IssueLicenseRequestPage_e_no_product_version; - public static String IssueLicenseRequestPage_e_no_user; - public static String IssueLicenseRequestPage_e_no_date; - public static String IssueLicenseRequestPage_e_invalid_capacity; - public static String IssueLicenseRequestPage_e_reversed_period; - public static String IssueLicenseRequestPage_lbl_valid_from; - public static String IssueLicenseRequestPage_lbl_valid_until; - public static String IssueLicenseRequestPage_lbl_license_plan; - public static String IssueLicenseRequestPage_page_title; - public static String IssueLicenseRequestPage_page_description; - public static String IssueLicenseRequestPage_lbl_product_version; - public static String IssueLicenseRequestPage_lbl_user; - public static String IssueLicenseRequestPage_lbl_users; - public static String IssueLicenseRequestPage_lbl_capacity; - public static String IssueLicenseRequestPage_lbl_default_capacity; - public static String IssueLicenseRequestPage_valid_from_title; - public static String IssueLicenseRequestPage_valid_until_title; - public static String IssueLicenseRequestPage_lbl_port; - public static String IssueLicenseRequestPage_e_invalid_port; - public static String IssueLicenseRequestPage_lbl_ip; - public static String IssueLicenseRequestPage_e_no_ip; - public static String IssueLicenseRequestPage_lbl_generate_floating_configs; - - public static String IssueLicenseWizard_ok_licensed_title; - public static String IssueLicenseWizard_window_title; - public static String IssueLicenseDetailsPage_page_title; - public static String IssueLicenseDetailsPage_page_description; - public static String IssueFloatingLicenseWizard_failure; - public static String IssueFloatingLicenseWizard_title; - public static String IssueFloatingLicenseWizard_success; - public static String IssueFloatingLicenseWizard_success_description; - public static String Floating_DataPage_description; - public static String Floating_DataPage_title; - public static String IssueUserConfigsRequestPage_page_description; - public static String LicenseIssuedNotification_open_folder; - - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, IssueLicensePageMessages.class); - } - - private IssueLicensePageMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.properties b/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.properties deleted file mode 100644 index 5a3f0f70a..000000000 --- a/bundles/org.eclipse.passage.loc.dashboard.ui/src/org/eclipse/passage/loc/internal/dashboard/ui/i18n/IssueLicensePageMessages.properties +++ /dev/null @@ -1,53 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 2022 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 -############################################################################### - -IssueLicensePackPage_page_description=Verify the information and issue the License -IssueLicensePackPage_page_title=License Pack -IssueLicenseRequestPage_btn_select_text=Select... -IssueLicenseRequestPage_e_no_license_plan=Please specify a License Plan -IssueLicenseRequestPage_e_no_product_version=Please specify a Product Version -IssueLicenseRequestPage_e_no_date=Please specify the license validity period correctly: there is no %s -IssueLicenseRequestPage_e_reversed_period=Please specify the license validity period correctly: From cannot be after Until -IssueLicenseRequestPage_e_no_user=Please specify a User -IssueLicenseRequestPage_e_invalid_capacity=License capacity must be of `quantity` type: positive and integer -IssueLicenseRequestPage_lbl_valid_from=Valid From: -IssueLicenseRequestPage_lbl_valid_until=Valid Until: -IssueLicenseRequestPage_lbl_license_plan=License Plan: -IssueLicenseRequestPage_page_title=License Request -IssueLicenseRequestPage_page_description=Provide the information regarding the requested License -IssueLicenseRequestPage_lbl_product_version=Product Version: -IssueLicenseRequestPage_lbl_user=User: -IssueLicenseRequestPage_lbl_users=Users: -IssueLicenseRequestPage_lbl_capacity=Capacity: -IssueLicenseRequestPage_lbl_default_capacity=Default Capacity: -IssueLicenseRequestPage_lbl_port=Floating Server Port: -IssueLicenseRequestPage_e_invalid_port=Floating Server Port must be positive integer -IssueLicenseRequestPage_lbl_ip=IP Address: -IssueLicenseRequestPage_e_no_ip=Please specify valid IP Address for the Floating Server -IssueLicenseRequestPage_lbl_generate_floating_configs=Generate floating server connection configuration files for each user: - -IssueLicenseRequestPage_valid_from_title=Valid From -IssueLicenseRequestPage_valid_until_title=Valid Until -IssueLicenseWizard_ok_licensed_title=License Issued -IssueLicenseWizard_window_title=Issue License -IssueLicenseDetailsPage_page_title=License Details -IssueLicenseDetailsPage_page_description=Provide detailed licensing request - -IssueFloatingLicenseWizard_failure=Floating license issuing failed -IssueFloatingLicenseWizard_title=Issue Floating License -IssueFloatingLicenseWizard_success = Floating License has been issued successfully -IssueFloatingLicenseWizard_success_description=Floating License Pack files are stored in %s -Floating_DataPage_title=Floating license information -Floating_DataPage_description=Provide the information for the requested floating license -IssueUserConfigsRequestPage_page_description=Specify information for personal floating license access for listed users -LicenseIssuedNotification_open_folder=Open &Folder diff --git a/bundles/org.eclipse.passage.loc.e4/.classpath b/bundles/org.eclipse.passage.loc.e4/.classpath deleted file mode 100644 index 8d8612144..000000000 --- a/bundles/org.eclipse.passage.loc.e4/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.e4/.project b/bundles/org.eclipse.passage.loc.e4/.project deleted file mode 100644 index 931848fcb..000000000 --- a/bundles/org.eclipse.passage.loc.e4/.project +++ /dev/null @@ -1,41 +0,0 @@ - - - org.eclipse.passage.loc.e4 - - - - - - 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.e4/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.e4/META-INF/MANIFEST.MF deleted file mode 100644 index 2c04c1849..000000000 --- a/bundles/org.eclipse.passage.loc.e4/META-INF/MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.e4 -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.e4 -Bundle-Version: 3.1.0.qualifier -Export-Package: org.eclipse.passage.loc.internal.e4.events;x-internal:=true -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Bundle-ActivationPolicy: lazy -Import-Package: org.osgi.service.event;version="1.0.0" -Require-Bundle: org.eclipse.e4.core.services;bundle-version="0.0.0" diff --git a/bundles/org.eclipse.passage.loc.e4/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.e4/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index b7c67158a..000000000 --- a/bundles/org.eclipse.passage.loc.e4/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 E4 -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.e4/build.properties b/bundles/org.eclipse.passage.loc.e4/build.properties deleted file mode 100644 index 835c594b1..000000000 --- a/bundles/org.eclipse.passage.loc.e4/build.properties +++ /dev/null @@ -1,18 +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.. = target/classes/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/ diff --git a/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorEvents.java b/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorEvents.java deleted file mode 100644 index 9f86afc04..000000000 --- a/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorEvents.java +++ /dev/null @@ -1,49 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.e4.events; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.e4.core.services.events.IEventBroker; -import org.osgi.service.event.Event; - -public final class OperatorEvents { - - /** - * Topic separator character - */ - private final String topicSeparator = "/"; //$NON-NLS-1$ - - /** - * Wild card character for matching all sub topics - */ - private final String allSubTopics = "*"; //$NON-NLS-1$ - - public Event create(String topic, Object data) { - Map properties = new HashMap<>(); - properties.put(IEventBroker.DATA, data); - Event event = new Event(topic, properties); - return event; - } - - public String allSubTopics() { - return allSubTopics; - } - - public String topicSeparator() { - return topicSeparator; - } - -} diff --git a/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorLicenseEvents.java b/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorLicenseEvents.java deleted file mode 100644 index b3074fb33..000000000 --- a/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorLicenseEvents.java +++ /dev/null @@ -1,54 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.e4.events; - -import org.osgi.service.event.Event; - -public final class OperatorLicenseEvents { - - /** - * Base name of all License Operator events - */ - private final String topic; - - /** - * Sent when decoded {@link PersonalLicensePack} is issued - */ - private final String decoded; - - /** - * Sent when encoded {@link PersonalLicensePack} is issued in encoded form - */ - private final String encoded; - - public OperatorLicenseEvents() { - topic = "org/eclipse/passage/loc/api/OperatorLicenseEvents"; //$NON-NLS-1$ - String separator = new OperatorEvents().topicSeparator(); - decoded = topic + separator + "decodedIssued"; //$NON-NLS-1$ - encoded = topic + separator + "encodedIssued"; //$NON-NLS-1$ - } - - public Event decodedIssued(String path) { - return new OperatorEvents().create(decoded, path); - } - - public Event encodedIssued(String path) { - return new OperatorEvents().create(encoded, path); - } - - public String topic() { - return topic; - } - -} diff --git a/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorProductEvents.java b/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorProductEvents.java deleted file mode 100644 index 46d71dc53..000000000 --- a/bundles/org.eclipse.passage.loc.e4/src/org/eclipse/passage/loc/internal/e4/events/OperatorProductEvents.java +++ /dev/null @@ -1,45 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.e4.events; - -import java.security.KeyPair; - -import org.osgi.service.event.Event; - -public final class OperatorProductEvents { - - /** - * Base name of all License Operator events - */ - private final String topic; - - /** - * Sent when {@link KeyPair} is generated and persisted - */ - private final String keyCreated; - - public OperatorProductEvents() { - topic = "org/eclipse/passage/loc/api/OperatorProductEvents"; //$NON-NLS-1$ - keyCreated = topic + new OperatorEvents().topicSeparator() + "keysCreated"; //$NON-NLS-1$ - } - - public Event keysCreated(String path) { - return new OperatorEvents().create(keyCreated, path); - } - - public String topic() { - return topic; - } - -} diff --git a/bundles/org.eclipse.passage.loc.edit.ui/.classpath b/bundles/org.eclipse.passage.loc.edit.ui/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.edit.ui/.project b/bundles/org.eclipse.passage.loc.edit.ui/.project deleted file mode 100644 index 1c44d1de2..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/.project +++ /dev/null @@ -1,41 +0,0 @@ - - - org.eclipse.passage.loc.edit.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.edit.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.edit.ui/META-INF/MANIFEST.MF deleted file mode 100644 index ac7e7895b..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,25 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.edit.ui -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.edit.ui;singleton:=true -Bundle-Version: 3.1.0.qualifier -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Import-Package: javax.inject, - javax.annotation;version="1.2.0" -Require-Bundle: org.eclipse.e4.core.contexts;bundle-version="0.0.0", - org.eclipse.e4.core.di.annotations;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.emf.ecore;bundle-version="0.0.0", - org.eclipse.emf.edit.ui;bundle-version="0.0.0", - org.eclipse.jface;bundle-version="0.0.0", - org.eclipse.passage.lic.emf;bundle-version="0.0.0", - org.eclipse.passage.loc.equinox;bundle-version="0.0.0", - org.eclipse.passage.loc.workbench;bundle-version="0.0.0" -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Export-Package: org.eclipse.passage.loc.edit.ui;x-internal:=true, - org.eclipse.passage.loc.edit.ui.handlers;x-internal:=true diff --git a/bundles/org.eclipse.passage.loc.edit.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.edit.ui/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 2fa0f929f..000000000 --- a/bundles/org.eclipse.passage.loc.edit.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 Edit 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.loc.edit.ui/about.html b/bundles/org.eclipse.passage.loc.edit.ui/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.edit.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.edit.ui/build.properties b/bundles/org.eclipse.passage.loc.edit.ui/build.properties deleted file mode 100644 index b9fc0df7e..000000000 --- a/bundles/org.eclipse.passage.loc.edit.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.edit.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.edit.ui/fragment.e4xmi deleted file mode 100644 index 99df03fa4..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/fragment.e4xmi +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.edit.ui/plugin.xml b/bundles/org.eclipse.passage.loc.edit.ui/plugin.xml deleted file mode 100644 index 0556b894e..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/plugin.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryExplorerPart.java b/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryExplorerPart.java deleted file mode 100644 index 1075badab..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryExplorerPart.java +++ /dev/null @@ -1,124 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.edit.ui; - -import java.util.List; -import java.util.stream.Collectors; - -import javax.annotation.PostConstruct; -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.workbench.modeling.ESelectionService; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.jface.action.GroupMarker; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -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.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess; -import org.eclipse.passage.loc.internal.workbench.registry.UnregisterAction; -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; -import org.eclipse.ui.IWorkbenchActionConstants; - -@SuppressWarnings("restriction") -public class DomainRegistryExplorerPart { - - private final LocDomainRegistryAccess access; - - private TableViewer viewer; - - @Inject - public DomainRegistryExplorerPart(IEclipseContext context) { - access = (LocDomainRegistryAccess) context.get(EditingDomainRegistryAccess.class); - } - - @PostConstruct - public void postConstruct(Composite parent, IEclipseContext context) { - - Composite area = new Composite(parent, SWT.NONE); - area.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); - area.setLayout(new GridLayout(1, false)); - viewer = createRegistryTree(area); - ESelectionService selectionService = context.get(ESelectionService.class); - viewer.addSelectionChangedListener(e -> { - ISelection selection = e.getSelection(); - if (selection instanceof IStructuredSelection) { - IStructuredSelection structured = (IStructuredSelection) selection; - if (structured.size() == 1) { - selectionService.setSelection(structured.getFirstElement()); - } else { - selectionService.setSelection(structured.toArray()); - } - } - }); - update(access.domainRegistryList()); - } - - private TableViewer createRegistryTree(Composite area) { - TableViewer created = new TableViewer(area); - created.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - created.setContentProvider(ArrayContentProvider.getInstance()); - created.setLabelProvider(new DomainRegistryLabelProvider(access)); - createContextMenu(created.getControl()); - return created; - } - - @Inject - @Optional - public void changed(@SuppressWarnings("unused") @UIEventTopic("org/eclipse/passage/lic/*") Object unused) { - update(access.domainRegistryList()); - } - - private void update(List> list) { - if (viewer == null && viewer.getControl().isDisposed()) { - return; - } - viewer.setInput(list.stream()// - .filter(BaseDomainRegistry.class::isInstance)// - .map(BaseDomainRegistry.class::cast).map(BaseDomainRegistry::getEditingDomain)// - .map(EditingDomain::getResourceSet)// - .flatMap(rs -> rs.getResources().stream())// - .filter(r -> r.getURI() != null)// - .sorted((r1, r2) -> r1.getURI().toString().compareTo(r2.getURI().toString()))// - .collect(Collectors.toList())); - } - - private void createContextMenu(Control control) { - MenuManager contextMenu = new MenuManager("#ViewerMenu"); //$NON-NLS-1$ - contextMenu.setRemoveAllWhenShown(true); - contextMenu.addMenuListener(this::fillContextMenu); - control.setMenu(contextMenu.createContextMenu(control)); - } - - private void fillContextMenu(IMenuManager contextMenu) { - contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); - contextMenu.add(new UnregisterAction(access, // - () -> viewer.getStructuredSelection().toArray(), // - () -> viewer.getControl().getShell())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryLabelProvider.java b/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryLabelProvider.java deleted file mode 100644 index 283bf8d53..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/DomainRegistryLabelProvider.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.loc.edit.ui; - -import java.util.Optional; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess; -import org.eclipse.swt.graphics.Image; - -class DomainRegistryLabelProvider extends LabelProvider { - - private final LocDomainRegistryAccess access; - - public DomainRegistryLabelProvider(LocDomainRegistryAccess access) { - this.access = access; - } - - @Override - public String getText(Object element) { - return uri(element)// - .map(URI::toFileString)// - .orElseGet(() -> super.getText(element)); - } - - @Override - public Image getImage(Object element) { - return uri(element)// - .flatMap(u -> Optional.ofNullable(u.fileExtension()))// - .flatMap(access::domainForExtension)// - .flatMap(d -> Optional.ofNullable(LicensingImages.getImage(d))) - .orElseGet(() -> super.getImage(element)); - } - - private Optional uri(Object element) { - return Optional.ofNullable(element)// - .filter(Resource.class::isInstance)// - .map(Resource.class::cast)// - .flatMap(r -> Optional.ofNullable(r.getURI())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/handlers/DomainRegistryRemoveHandler.java b/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/handlers/DomainRegistryRemoveHandler.java deleted file mode 100644 index 59c9cdf68..000000000 --- a/bundles/org.eclipse.passage.loc.edit.ui/src/org/eclipse/passage/loc/edit/ui/handlers/DomainRegistryRemoveHandler.java +++ /dev/null @@ -1,45 +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.edit.ui.handlers; - -import java.util.Objects; - -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.ui.services.IServiceConstants; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess; -import org.eclipse.passage.loc.internal.workbench.registry.UnregisterConfirmation; -import org.eclipse.passage.loc.internal.workbench.registry.UnregisterSelected; -import org.eclipse.passage.loc.internal.workbench.registry.UnregisterUri; -import org.eclipse.swt.widgets.Shell; - -public class DomainRegistryRemoveHandler { - - @CanExecute - public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) Object selection) { - return Objects.nonNull(selection); - } - - @Execute - public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) Object selection, IEclipseContext context) { - new UnregisterSelected(// - new UnregisterUri((LocDomainRegistryAccess) context.get(EditingDomainRegistryAccess.class)), // - new UnregisterConfirmation(() -> context.get(Shell.class))// - ).unregister(selection); - } - -} diff --git a/bundles/org.eclipse.passage.loc.equinox/.classpath b/bundles/org.eclipse.passage.loc.equinox/.classpath deleted file mode 100644 index 8d8612144..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.equinox/.project b/bundles/org.eclipse.passage.loc.equinox/.project deleted file mode 100644 index c1a82735b..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/.project +++ /dev/null @@ -1,41 +0,0 @@ - - - org.eclipse.passage.loc.equinox - - - - - - 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.equinox/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.equinox/META-INF/MANIFEST.MF deleted file mode 100644 index b13f37f96..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/META-INF/MANIFEST.MF +++ /dev/null @@ -1,16 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.equinox -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.equinox -Bundle-Version: 3.1.0.qualifier -Export-Package: org.eclipse.passage.loc.internal.equinox;x-friends:="org.eclipse.passage.loc.licenses.core,org.eclipse.passage.loc.products.core" -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Bundle-ActivationPolicy: lazy -Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.loc.api;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.base;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.emf;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.equinox;bundle-version="0.0.0";visibility:=reexport diff --git a/bundles/org.eclipse.passage.loc.equinox/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.equinox/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 9cd71dc38..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/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 Equinox -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.equinox/build.properties b/bundles/org.eclipse.passage.loc.equinox/build.properties deleted file mode 100644 index 835c594b1..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/build.properties +++ /dev/null @@ -1,18 +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.. = target/classes/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/ diff --git a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/AgreementsService.java b/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/AgreementsService.java deleted file mode 100644 index 7cffb4d79..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/AgreementsService.java +++ /dev/null @@ -1,33 +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.equinox; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.loc.internal.api.workspace.Agreements; - -@SuppressWarnings("restriction") -public final class AgreementsService { - - public Agreements get() throws LicensingException { - Optional service = new OperatorGearAware() - .withGear(gear -> Optional.of(gear.workspace().agreements())); - if (!service.isPresent()) { - throw new LicensingException("There is no Agreements service supplied by Operator Workspace"); //$NON-NLS-1$ - } - return service.get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/BaseDomainRegistry.java b/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/BaseDomainRegistry.java deleted file mode 100644 index 66e3b199e..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/BaseDomainRegistry.java +++ /dev/null @@ -1,191 +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 - * ArSysOp - further evolution - *******************************************************************************/ -package org.eclipse.passage.loc.internal.equinox; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.util.EContentAdapter; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.emf.edit.domain.IEditingDomainProvider; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.api.diagnostic.Diagnostic; -import org.eclipse.passage.lic.api.diagnostic.Trouble; -import org.eclipse.passage.lic.base.BaseServiceInvocationResult; -import org.eclipse.passage.lic.base.diagnostic.DiagnosticExplained; -import org.eclipse.passage.lic.emf.resource.ResourceLoadFailed; -import org.eclipse.passage.lic.internal.emf.i18n.EmfMessages; -import org.eclipse.passage.loc.internal.api.EditingDomainSource; -import org.eclipse.passage.loc.internal.api.OperatorGear; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -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; - -@SuppressWarnings("restriction") -public abstract class BaseDomainRegistry implements EditingDomainRegistry, IEditingDomainProvider { - - protected String domainName; - - private Optional editingDomain = Optional.empty(); - - private final List sources; - - private final EContentAdapter contentAdapter; - - private Optional gear = Optional.empty(); - - public BaseDomainRegistry() { - sources = new ArrayList<>(); - contentAdapter = createContentAdapter(); - } - - public void bindGear(OperatorGearSupplier supplier) { - gear = Optional.of(supplier); - } - - public void unbindGear(OperatorGearSupplier supplier) { - if (gear.isEmpty()) { - return; - } - if (gear.get().equals(supplier)) { - gear = Optional.empty(); - } - } - - protected final void activate(Map properties) { - domainName = String.valueOf(properties.get(EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME)); - getEditingDomain().getResourceSet().eAdapters().add(contentAdapter); - try { - gear.stream()// - .findFirst()// - .map(OperatorGearSupplier::get)// - .map(OperatorGear::workspace)// - .ifPresent(this::load); - } catch (Exception e) { - Platform.getLog(getClass()).error(e.getMessage(), e); - } - } - - private void load(OperatorWorkspace workspace) { - knownResources(workspace).all().stream()// - .filter(this::emfResource)// - .map(ResourceHandle::uri)// - .map(URI::createURI)// - .forEach(this::registerSource); - } - - protected abstract boolean emfResource(ResourceHandle handle); - - protected abstract KnownResources knownResources(OperatorWorkspace workspace); - - protected void logDiagnostic(Diagnostic diagnostic) { - Platform.getLog(getClass()).error(new DiagnosticExplained(diagnostic).get()); - } - - protected abstract DomainContentAdapter> createContentAdapter(); - - protected final void deactivate(@SuppressWarnings("unused") Map properties) { - try { - gear.stream()// - .findFirst()// - .map(OperatorGearSupplier::get)// - .map(OperatorGear::workspace)// - .ifPresent(this::store); - } catch (Exception e) { - Platform.getLog(getClass()).error(e.getMessage(), e); - } - getEditingDomain().getResourceSet().eAdapters().remove(contentAdapter); - } - - private void store(OperatorWorkspace workspace) { - knownResources(workspace)// - .memento(getSources().stream()// - .map(URI::toString)// - .collect(Collectors.toList())); - } - - @Override - public EditingDomain getEditingDomain() { - if (editingDomain.isEmpty()) { - editingDomain = gear.map(OperatorGearSupplier::get)// - .map(OperatorGear::editingDomainSource)// - .map(EditingDomainSource::create); - } - return editingDomain.orElse(null); - } - - protected Map getLoadOptions() { - return new HashMap<>(); - } - - protected Map getSaveOptions() { - return new HashMap<>(); - } - - public ServiceInvocationResult loadSource(URI uri) { - ResourceSet set = getEditingDomain().getResourceSet(); - Resource resource = createResource(uri); - set.getResources().add(resource); - try { - resource.load(getLoadOptions()); - resource.eAdapters().add(contentAdapter); - return new BaseServiceInvocationResult<>(true); - } catch (IOException e) { - return new BaseServiceInvocationResult<>(new Trouble(// - new ResourceLoadFailed(), NLS.bind(EmfMessages.BaseDomainRegistry_e_load_failed, uri), e)); - } - } - - protected abstract Resource createResource(URI uri); - - public void unloadSource(URI uri) { - ResourceSet resourceSet = getEditingDomain().getResourceSet(); - Resource resource = resourceSet.getResource(uri, false); - resource.unload(); - resourceSet.getResources().remove(resource); - } - - @Override - public ServiceInvocationResult registerSource(URI uri) { - sources.add(uri); - return loadSource(uri); - } - - @Override - public void unregisterSource(URI uri) { - sources.remove(uri); - unloadSource(uri); - } - - @Override - public List getSources() { - return Collections.unmodifiableList(sources); - } - -} diff --git a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorGearAware.java b/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorGearAware.java deleted file mode 100644 index 63e98caaf..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorGearAware.java +++ /dev/null @@ -1,28 +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.equinox; - -import org.eclipse.passage.lic.equinox.GearAware; -import org.eclipse.passage.loc.internal.api.OperatorGear; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; - -@SuppressWarnings("restriction") -public final class OperatorGearAware extends GearAware { - - @Override - protected Class supplier() { - return OperatorGearSupplier.class; - } - -} diff --git a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorProductService.java b/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorProductService.java deleted file mode 100644 index 34f16a98a..000000000 --- a/bundles/org.eclipse.passage.loc.equinox/src/org/eclipse/passage/loc/internal/equinox/OperatorProductService.java +++ /dev/null @@ -1,24 +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.equinox; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.passage.lic.products.model.api.ProductVersion; - -public interface OperatorProductService { - - String createPassword(ProductVersion productVersion); - - IStatus createProductKeys(ProductVersion descriptor); - -} diff --git a/bundles/org.eclipse.passage.loc.features.core/.classpath b/bundles/org.eclipse.passage.loc.features.core/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.core/.project b/bundles/org.eclipse.passage.loc.features.core/.project deleted file mode 100644 index 5d3702b52..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.features.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.features.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.features.core/META-INF/MANIFEST.MF deleted file mode 100644 index e1097a723..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.features.core -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.features.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.emf;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.features.model;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.loc.equinox;bundle-version="0.0.0" -Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.passage.loc.internal.features;x-friends:="org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.features.emfforms,org.eclipse.passage.loc.features.ui", - org.eclipse.passage.loc.internal.features.core;x-internal:=true -Service-Component: OSGI-INF/*.xml -Import-Package: org.osgi.service.event;version="1.0.0" diff --git a/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 3e0b49002..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/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 Features Core -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.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeatureDomainRegistry.xml b/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeatureDomainRegistry.xml deleted file mode 100644 index 46d129584..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeatureDomainRegistry.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeaturesSelectionCommandAdvisor.xml b/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeaturesSelectionCommandAdvisor.xml deleted file mode 100644 index efb1f0703..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/OSGI-INF/org.eclipse.passage.loc.internal.features.core.FeaturesSelectionCommandAdvisor.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.features.core/about.html b/bundles/org.eclipse.passage.loc.features.core/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.features.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.features.core/build.properties b/bundles/org.eclipse.passage.loc.features.core/build.properties deleted file mode 100644 index 341338601..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/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.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistry.java b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistry.java deleted file mode 100644 index 149cfcef1..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistry.java +++ /dev/null @@ -1,34 +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.features; - -import java.util.Collection; -import java.util.Optional; - -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; - -public interface FeatureRegistry { - - Collection featureSets(); - - Optional featureSet(String id); - - Collection features(); - - Optional feature(String id); - - Collection featureVersions(); - -} diff --git a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistryEvents.java b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistryEvents.java deleted file mode 100644 index 9493f96b4..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/FeatureRegistryEvents.java +++ /dev/null @@ -1,112 +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.features; - -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; - -/** - * Feature registry events and event topic definitions. - * - * @since 0.4.0 - */ -public final class FeatureRegistryEvents { - - /** - * Base name of all Features events - */ - public static final String FEATURES_TOPIC_BASE = "org/eclipse/passage/lic/features/registry"; //$NON-NLS-1$ - - /** - * Base name of all Feature Set events - */ - public static final String FEATURE_SET_TOPIC_BASE = FEATURES_TOPIC_BASE + TOPIC_SEP + "FeatureSet"; //$NON-NLS-1$ - - /** - * Feature Set create event - */ - public static final String FEATURE_SET_CREATE = FEATURE_SET_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Feature Set read event - */ - public static final String FEATURE_SET_READ = FEATURE_SET_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Feature Set update event - */ - public static final String FEATURE_SET_UPDATE = FEATURE_SET_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Feature Set delete event - */ - public static final String FEATURE_SET_DELETE = FEATURE_SET_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all Feature events - */ - public static final String FEATURE_TOPIC_BASE = FEATURES_TOPIC_BASE + TOPIC_SEP + "Feature"; //$NON-NLS-1$ - - /** - * Feature create event - */ - public static final String FEATURE_CREATE = FEATURE_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Feature read event - */ - public static final String FEATURE_READ = FEATURE_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Feature update event - */ - public static final String FEATURE_UPDATE = FEATURE_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Feature delete event - */ - public static final String FEATURE_DELETE = FEATURE_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all Feature Version events - */ - public static final String FEATURE_VERSION_TOPIC_BASE = FEATURES_TOPIC_BASE + TOPIC_SEP + "FeatureVersion"; //$NON-NLS-1$ - - /** - * Feature Version create event - */ - public static final String FEATURE_VERSION_CREATE = FEATURE_VERSION_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Feature Version read event - */ - public static final String FEATURE_VERSION_READ = FEATURE_VERSION_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Feature Version update event - */ - public static final String FEATURE_VERSION_UPDATE = FEATURE_VERSION_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Feature Version delete event - */ - public static final String FEATURE_VERSION_DELETE = FEATURE_VERSION_TOPIC_BASE + TOPIC_SEP + DELETE; - - private FeatureRegistryEvents() { - // block - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeatureDomainRegistry.java b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeatureDomainRegistry.java deleted file mode 100644 index e9636fbae..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeatureDomainRegistry.java +++ /dev/null @@ -1,253 +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.features.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.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.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.features.model.meta.FeaturesPackage; -import org.eclipse.passage.lic.internal.equinox.events.EquinoxEvent; -import org.eclipse.passage.lic.internal.features.model.util.FeaturesResourceImpl; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -import org.eclipse.passage.loc.internal.api.workspace.Features; -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.eclipse.passage.loc.internal.features.FeatureRegistry; -import org.eclipse.passage.loc.internal.features.FeatureRegistryEvents; -import org.eclipse.passage.loc.internal.features.core.i18n.FeaturesCoreMessages; -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 + '=' + FeaturesPackage.eNAME, - EditingDomainRegistryAccess.PROPERTY_FILE_EXTENSION + '=' + "features_xmi" }) -public final class FeatureDomainRegistry extends BaseDomainRegistry - implements FeatureRegistry, EditingDomainRegistry { - - private final Map sets = new HashMap<>(); - private final Map features = new HashMap<>(); - private final Map> versions = 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); - } - - @Override - @Reference - public void bindGear(OperatorGearSupplier supplier) { - super.bindGear(supplier); - } - - @Override - public void unbindGear(OperatorGearSupplier supplier) { - super.unbindGear(supplier); - } - - @Activate - public void load(Map properties) { - super.activate(properties); - } - - @Deactivate - public void unload(Map properties) { - versions.values().forEach(Map::clear); - versions.clear(); - features.clear(); - sets.clear(); - super.deactivate(properties); - } - - @Override - public String getFileExtension() { - return "features_xmi"; //$NON-NLS-1$ - } - - @Override - public Class getContentClass() { - return FeatureSet.class; - } - - @Override - public String resolveIdentifier(FeatureSet content) { - return content.getIdentifier(); - } - - @Override - public Collection featureSets() { - return new ArrayList<>(sets.values()); - } - - @Override - public Optional featureSet(String identifier) { - return Optional.ofNullable(sets.get(identifier)); - } - - @Override - public Collection features() { - return new ArrayList<>(features.values()); - } - - @Override - public Optional feature(String id) { - return Optional.ofNullable(features.get(id)); - } - - @Override - public Collection featureVersions() { - List list = new ArrayList<>(); - Collection> values = versions.values(); - for (Map map : values) { - list.addAll(map.values()); - } - return list; - } - - @Override - protected DomainContentAdapter createContentAdapter() { - return new FeaturesDomainRegistryTracker(this); - } - - void registerFeatureSet(FeatureSet fs) { - FeatureSet existing = sets.put(fs.getIdentifier(), fs); - if ((existing != null) && (existing != fs)) { - Platform.getLog(getClass()) - .warn(NLS.bind(FeaturesCoreMessages.FeatureDomain_instance_duplication_message, existing, fs)); - } - events().postEvent(new EquinoxEvent(FeatureRegistryEvents.FEATURE_SET_CREATE, fs).get()); - fs.getFeatures().forEach(this::registerFeature); - } - - void registerFeature(Feature feature) { - Feature existing = features.put(feature.getIdentifier(), feature); - if ((existing != null) && (existing != feature)) { - Platform.getLog(getClass()) - .warn(NLS.bind(FeaturesCoreMessages.FeatureDomain_instance_duplication_message, existing, feature)); - } - events().postEvent(new EquinoxEvent(FeatureRegistryEvents.FEATURE_CREATE, feature).get()); - feature.getFeatureVersions().forEach(fv -> registerFeatureVersion(feature, fv)); - } - - void registerFeatureVersion(Feature feature, FeatureVersion version) { - String identifier = feature.getIdentifier(); - Map map = versions.computeIfAbsent(identifier, key -> new HashMap<>()); - FeatureVersion existing = map.put(version.getVersion(), version); - if ((existing != null) && (existing != version)) { - Platform.getLog(getClass()) - .warn(NLS.bind(FeaturesCoreMessages.FeatureDomain_instance_duplication_message, existing, version)); - } - events().postEvent(new EquinoxEvent(FeatureRegistryEvents.FEATURE_VERSION_CREATE, version).get()); - } - - void unregisterFeatureSet(String id) { - FeatureSet removed = sets.remove(id); - if (removed != null) { - events().postEvent(new EquinoxEvent(FeatureRegistryEvents.FEATURE_SET_DELETE, removed).get()); - removed.getFeatures().stream().map(Feature::getIdentifier).forEach(this::unregisterFeature); - } - } - - void unregisterFeature(String id) { - Feature removed = features.remove(id); - if (removed != null) { - events().postEvent(new EquinoxEvent(FeatureRegistryEvents.FEATURE_DELETE, removed).get()); - removed.getFeatureVersions().forEach(fv -> unregisterFeatureVersion(id, fv.getVersion())); - } - } - - void unregisterFeatureVersion(String featureId, String version) { - Map map = versions.get(featureId); - if (map != null) { - FeatureVersion removed = map.remove(version); - if (removed != null) { - events().postEvent(new EquinoxEvent(FeatureRegistryEvents.FEATURE_VERSION_DELETE, removed).get()); - } - if (map.isEmpty()) { - versions.remove(version); - } - } - } - - private EventAdmin events() { - return events.stream().findAny().get(); - } - - @Override - public EClass getContentClassifier() { - return FeaturesPackage.eINSTANCE.getFeatureSet(); - } - - @Override - public EStructuralFeature getContentIdentifierAttribute() { - return FeaturesPackage.eINSTANCE.getFeatureSet_Identifier(); - } - - @Override - public EStructuralFeature getContentNameAttribute() { - return FeaturesPackage.eINSTANCE.getFeatureSet_Name(); - } - - @Override - public void registerContent(FeatureSet content) { - registerFeatureSet(content); - } - - @Override - public void unregisterContent(String identifier) { - unregisterFeatureSet(identifier); - } - - @Override - protected final Resource createResource(URI uri) { - return new FeaturesResourceImpl(uri); - } - - @Override - protected boolean emfResource(ResourceHandle handle) { - return Features.xmi.equals(handle.type()) || Features.xmi033.equals(handle.type()); - } - - @Override - protected KnownResources knownResources(OperatorWorkspace workspace) { - return workspace.features(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesDomainRegistryTracker.java b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesDomainRegistryTracker.java deleted file mode 100644 index a6106d915..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesDomainRegistryTracker.java +++ /dev/null @@ -1,180 +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.features.core; - -import org.eclipse.emf.common.notify.Notification; -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.features.model.meta.FeaturesPackage; -import org.eclipse.passage.loc.internal.emf.DomainContentAdapter; - -public class FeaturesDomainRegistryTracker extends DomainContentAdapter { - - public FeaturesDomainRegistryTracker(FeatureDomainRegistry registry) { - super(registry); - } - - @Override - public void notifyChanged(Notification notification) { - Object notifier = notification.getNotifier(); - if (notifier instanceof FeatureSet) { - FeatureSet featureSet = (FeatureSet) notifier; - switch (notification.getFeatureID(FeatureSet.class)) { - case FeaturesPackage.FEATURE_SET__IDENTIFIER: - processFeatureSetIdentifier(featureSet, notification); - break; - case FeaturesPackage.FEATURE_SET__FEATURES: - processFeatureSetFeatures(featureSet, notification); - break; - default: - break; - } - } else if (notifier instanceof Feature) { - Feature feature = (Feature) notifier; - switch (notification.getFeatureID(Feature.class)) { - case FeaturesPackage.FEATURE__IDENTIFIER: - processFeatureIdentifier(feature, notification); - break; - case FeaturesPackage.FEATURE__FEATURE_VERSIONS: - processFeatureFeatureVersions(feature, notification); - break; - default: - break; - } - } else if (notifier instanceof FeatureVersion) { - FeatureVersion featureVersion = (FeatureVersion) notifier; - switch (notification.getFeatureID(FeatureVersion.class)) { - case FeaturesPackage.FEATURE_VERSION__VERSION: - processFeatureVersionVersion(featureVersion, notification); - break; - default: - break; - } - } - super.notifyChanged(notification); - } - - protected void processFeatureSetIdentifier(FeatureSet featureSet, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterFeatureSet(oldValue); - } - if (newValue != null) { - registry.registerFeatureSet(featureSet); - } - break; - default: - break; - } - } - - protected void processFeatureSetFeatures(FeatureSet featureSet, Notification notification) { - Object oldValue = notification.getOldValue(); - Object newValue = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.ADD: - if (newValue instanceof Feature) { - Feature feature = (Feature) newValue; - String identifier = feature.getIdentifier(); - if (identifier != null) { - registry.registerFeature(feature); - } - } - break; - case Notification.REMOVE: - if (oldValue instanceof Feature) { - Feature feature = (Feature) oldValue; - String identifier = feature.getIdentifier(); - if (identifier != null) { - registry.unregisterFeature(identifier); - } - } - break; - - default: - break; - } - } - - protected void processFeatureIdentifier(Feature feature, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterFeature(oldValue); - } - if (newValue != null) { - registry.registerFeature(feature); - } - break; - default: - break; - } - } - - protected void processFeatureFeatureVersions(Feature feature, Notification notification) { - Object oldValue = notification.getOldValue(); - Object newValue = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.ADD: - if (newValue instanceof FeatureVersion) { - FeatureVersion featureVersion = (FeatureVersion) newValue; - String version = featureVersion.getVersion(); - if (version != null) { - registry.registerFeatureVersion(feature, featureVersion); - } - } - break; - case Notification.REMOVE: - if (oldValue instanceof FeatureVersion) { - FeatureVersion featureVersion = (FeatureVersion) oldValue; - String version = featureVersion.getVersion(); - if (version != null) { - registry.unregisterFeatureVersion(feature.getIdentifier(), featureVersion.getVersion()); - } - } - break; - - default: - break; - } - } - - protected void processFeatureVersionVersion(FeatureVersion featureVersion, Notification notification) { - Feature feature = featureVersion.getFeature(); - if (feature == null) { - // FIXME: warn - return; - } - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterFeatureVersion(feature.getIdentifier(), oldValue); - } - if (newValue != null) { - registry.registerFeatureVersion(feature, featureVersion); - } - break; - default: - break; - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesSelectionCommandAdvisor.java b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesSelectionCommandAdvisor.java deleted file mode 100644 index a4f63b37e..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/FeaturesSelectionCommandAdvisor.java +++ /dev/null @@ -1,74 +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.features.core; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.eclipse.passage.lic.features.model.meta.FeaturesPackage; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.emf.SelectionCommandAdvisor; -import org.eclipse.passage.loc.internal.features.FeatureRegistry; -import org.eclipse.passage.loc.internal.features.core.i18n.FeaturesCoreMessages; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.component.annotations.ReferenceCardinality; - -@Component(property = { EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME + '=' + FeaturesPackage.eNAME }) -public class FeaturesSelectionCommandAdvisor implements SelectionCommandAdvisor { - - private final List features = new ArrayList<>(); - - @Reference(cardinality = ReferenceCardinality.MANDATORY) - public void bindFeatures(FeatureRegistry registry) { - this.features.add(registry); - } - - public void unbindFeatures(FeatureRegistry registry) { - this.features.remove(registry); - } - - @Override - public String getSelectionTitle(String classifier) { - if (FeaturesPackage.eINSTANCE.getFeatureSet().getName().equals(classifier)) { - return FeaturesCoreMessages.FeaturesSelectionCommandAdvisor_select_feature_set; - } - if (FeaturesPackage.eINSTANCE.getFeature().getName().equals(classifier)) { - return FeaturesCoreMessages.FeaturesSelectionCommandAdvisor_select_feature; - } - if (FeaturesPackage.eINSTANCE.getFeatureVersion().getName().equals(classifier)) { - return FeaturesCoreMessages.FeaturesSelectionCommandAdvisor_select_feature_version; - } - return null; - } - - @Override - public Iterable getSelectionInput(String classifier) { - if (FeaturesPackage.eINSTANCE.getFeatureSet().getName().equals(classifier)) { - return features().featureSets(); - } - if (FeaturesPackage.eINSTANCE.getFeature().getName().equals(classifier)) { - return features().features(); - } - if (FeaturesPackage.eINSTANCE.getFeatureVersion().getName().equals(classifier)) { - return features().featureVersions(); - } - return Collections.emptyList(); - } - - private FeatureRegistry features() { - return features.stream().findAny().get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.java b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.java deleted file mode 100644 index e2fb4e56a..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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: - * Elena Parovyshnaya - initial API and implementation - * ArSysOp - ongoing support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.features.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public class FeaturesCoreMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.features.core.i18n.FeaturesCoreMessages"; //$NON-NLS-1$ - public static String FeaturesSelectionCommandAdvisor_select_feature; - public static String FeaturesSelectionCommandAdvisor_select_feature_set; - public static String FeaturesSelectionCommandAdvisor_select_feature_version; - public static String FeatureDomain_instance_duplication_message; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, FeaturesCoreMessages.class); - } - - private FeaturesCoreMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.properties b/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.properties deleted file mode 100644 index 18d862a73..000000000 --- a/bundles/org.eclipse.passage.loc.features.core/src/org/eclipse/passage/loc/internal/features/core/i18n/FeaturesCoreMessages.properties +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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: -# Elena Parovyshnaya - initial API and implementation -# ArSysOp - ongoing support -############################################################################### -FeaturesSelectionCommandAdvisor_select_feature=Select Feature -FeaturesSelectionCommandAdvisor_select_feature_set=Select Feature Set -FeaturesSelectionCommandAdvisor_select_feature_version=Select Feature Version -FeatureDomain_instance_duplication_message=Duplication of feature instances. The existing instance: \"{0}\" will be replaced by: \"{1}\" diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/.classpath b/bundles/org.eclipse.passage.loc.features.emfforms/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/.project b/bundles/org.eclipse.passage.loc.features.emfforms/.project deleted file mode 100644 index 6ab974cc5..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.features.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.features.emfforms/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.features.emfforms/META-INF/MANIFEST.MF deleted file mode 100644 index aaa5df7c0..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,36 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.features.emfforms -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.features.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.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;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core.di;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.features.core;bundle-version="0.0.0", - org.eclipse.passage.loc.features.ui;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.features.emfforms.parts;x-internal:=true, - org.eclipse.passage.loc.features.emfforms.renderers;x-friends:="org.eclipse.passage.loc.products.emfforms,org.eclipse.passage.loc.licenses.emfforms" -Service-Component: OSGI-INF/*.xml -Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 1987ac176..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/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 Features EMF Forms -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.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureIdentifierRendererService.xml deleted file mode 100644 index b92e5ed04..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureIdentifierRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureSetIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureSetIdentifierRendererService.xml deleted file mode 100644 index b5c9a2ff2..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/OSGI-INF/org.eclipse.passage.loc.features.emfforms.renderers.FeatureSetIdentifierRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/about.html b/bundles/org.eclipse.passage.loc.features.emfforms/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.features.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.features.emfforms/build.properties b/bundles/org.eclipse.passage.loc.features.emfforms/build.properties deleted file mode 100644 index d6b5e01ce..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/build.properties +++ /dev/null @@ -1,22 +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/,\ - .,\ - plugin.xml,\ - OSGI-INF/,\ - viewmodels/,\ - fragment.e4xmi,\ - about.html diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/fragment.e4xmi b/bundles/org.eclipse.passage.loc.features.emfforms/fragment.e4xmi deleted file mode 100644 index 0f1dee398..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/fragment.e4xmi +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/plugin.xml b/bundles/org.eclipse.passage.loc.features.emfforms/plugin.xml deleted file mode 100644 index f67c8c33a..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/plugin.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesCreateElementCallback.java b/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesCreateElementCallback.java deleted file mode 100644 index efddeb6c4..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesCreateElementCallback.java +++ /dev/null @@ -1,34 +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.features.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 FeaturesCreateElementCallback implements CreateElementCallback { - - @Override - public void initElement(EObject parent, EReference reference, EObject newObject) { - } - - @Override - public boolean beforeCreateElement(Object newElement) { - return true; - } - - @Override - public void afterCreateElement(Object newElement) { - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesDetailsPart.java b/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesDetailsPart.java deleted file mode 100644 index c847001e2..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/parts/FeaturesDetailsPart.java +++ /dev/null @@ -1,46 +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.features.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.features.model.api.FeatureSet; -import org.eclipse.passage.loc.internal.features.FeatureRegistryEvents; -import org.eclipse.passage.loc.workbench.emfforms.parts.DetailsView; - -public class FeaturesDetailsPart extends DetailsView { - - @Inject - public FeaturesDetailsPart(MPart part, ESelectionService selectionService) { - super(part, selectionService); - } - - @Inject - @Optional - public void showFeatureSet(@UIEventTopic(FeatureRegistryEvents.FEATURE_SET_CREATE) FeatureSet input, - IEclipseContext context) { - show(input, context); - } - - @Override - protected CreateElementCallback getCreateElementCallback() { - return new FeaturesCreateElementCallback(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRenderer.java b/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRenderer.java deleted file mode 100644 index e91b806a0..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRenderer.java +++ /dev/null @@ -1,92 +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.features.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.features.model.api.Feature; -import org.eclipse.passage.loc.features.ui.FeaturesUi; -import org.eclipse.passage.loc.internal.features.FeatureRegistry; -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 FeatureIdentifierRenderer extends TextWithButtonRenderer { - - private static final String IDENTIFIER_EMPTY = ""; //$NON-NLS-1$ - - private final FeatureRegistry registry; - - @Inject - public FeatureIdentifierRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - registry = viewContext.getService(FeatureRegistry.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.feature(id); - } - } catch (DatabindingFailedException e) { - getReportService().report(new DatabindingFailedReport(e)); - } - Feature descriptor = FeaturesUi.selectFeatureDescriptor(shell, registry, initial); - if (descriptor != null) { - String identifier = descriptor.getIdentifier(); - if (identifier != null) { - text.setText(identifier); - } - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRendererService.java deleted file mode 100644 index 06342b6af..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureIdentifierRendererService.java +++ /dev/null @@ -1,55 +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.features.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.features.model.meta.FeaturesPackage; -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 FeatureIdentifierRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public FeatureIdentifierRendererService() { - super(ValidatedTextRenderer.class, FeaturesPackage.eINSTANCE.getFeature_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.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureSetIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureSetIdentifierRendererService.java deleted file mode 100644 index 8993cc5e5..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/src/org/eclipse/passage/loc/features/emfforms/renderers/FeatureSetIdentifierRendererService.java +++ /dev/null @@ -1,55 +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.features.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.features.model.meta.FeaturesPackage; -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 FeatureSetIdentifierRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public FeatureSetIdentifierRendererService() { - super(ValidatedTextRenderer.class, FeaturesPackage.eINSTANCE.getFeatureSet_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.features.emfforms/viewmodels/FeatureSet.view b/bundles/org.eclipse.passage.loc.features.emfforms/viewmodels/FeatureSet.view deleted file mode 100644 index 66dabb84c..000000000 --- a/bundles/org.eclipse.passage.loc.features.emfforms/viewmodels/FeatureSet.view +++ /dev/null @@ -1,20 +0,0 @@ - - - - /org.eclipse.passage.lic.features.ecore/model/features.ecore - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.ui/.classpath b/bundles/org.eclipse.passage.loc.features.ui/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.ui/.project b/bundles/org.eclipse.passage.loc.features.ui/.project deleted file mode 100644 index 88e626d58..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/.project +++ /dev/null @@ -1,41 +0,0 @@ - - - org.eclipse.passage.loc.features.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.features.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.features.ui/META-INF/MANIFEST.MF deleted file mode 100644 index 27e52c925..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,27 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.features.ui -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.features.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.core.runtime;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.core.di.annotations;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.0.0", - org.eclipse.passage.lic.features.e4.ui;bundle-version="0.0.0", - org.eclipse.passage.lic.features.model;bundle-version="0.0.0", - org.eclipse.passage.loc.features.core;bundle-version="0.0.0", - org.eclipse.passage.loc.workbench;bundle-version="0.0.0" -Import-Package: javax.inject;version="1.0.0" -Export-Package: org.eclipse.passage.loc.features.ui;x-friends:="org.eclipse.passage.loc.features.emfforms,org.eclipse.passage.loc.dashboard.ui", - org.eclipse.passage.loc.features.ui.handlers;x-internal:=true diff --git a/bundles/org.eclipse.passage.loc.features.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.features.ui/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 08d151b8c..000000000 --- a/bundles/org.eclipse.passage.loc.features.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 Features 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.loc.features.ui/about.html b/bundles/org.eclipse.passage.loc.features.ui/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.features.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.features.ui/build.properties b/bundles/org.eclipse.passage.loc.features.ui/build.properties deleted file mode 100644 index b9fc0df7e..000000000 --- a/bundles/org.eclipse.passage.loc.features.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.features.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.features.ui/fragment.e4xmi deleted file mode 100644 index 786005845..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/fragment.e4xmi +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FORCE_TEXT - - - - diff --git a/bundles/org.eclipse.passage.loc.features.ui/plugin.xml b/bundles/org.eclipse.passage.loc.features.ui/plugin.xml deleted file mode 100644 index 22861bbc7..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/plugin.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/FeaturesUi.java b/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/FeaturesUi.java deleted file mode 100644 index 6ad554ad1..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/FeaturesUi.java +++ /dev/null @@ -1,36 +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.features.ui; - -import java.util.Optional; - -import org.eclipse.passage.lic.features.model.api.Feature; -import org.eclipse.passage.lic.features.model.meta.FeaturesPackage; -import org.eclipse.passage.loc.internal.features.FeatureRegistry; -import org.eclipse.passage.loc.internal.features.ui.i18n.FeatureUiMessages; -import org.eclipse.passage.loc.workbench.LocWokbench; -import org.eclipse.swt.widgets.Shell; - -public class FeaturesUi { - - public static final String BUNDLE_SYMBOLIC_NAME = "org.eclipse.passage.loc.features.ui"; //$NON-NLS-1$ - - public static final String PERSPECTIVE_MAIN = BUNDLE_SYMBOLIC_NAME + '.' + "perspective.main"; //$NON-NLS-1$ - - public static Feature selectFeatureDescriptor(Shell shell, FeatureRegistry registry, Optional initial) { - String classifier = FeaturesPackage.eINSTANCE.getFeature().getName(); - String title = FeatureUiMessages.FeaturesUi_select_feature_title; - return LocWokbench.selectClassifier(shell, classifier, title, registry.features(), initial, Feature.class); - } - -} diff --git a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/CreateFeatureSetHandler.java b/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/CreateFeatureSetHandler.java deleted file mode 100644 index 26bd04c24..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/CreateFeatureSetHandler.java +++ /dev/null @@ -1,30 +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.features.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.features.model.meta.FeaturesPackage; -import org.eclipse.passage.loc.features.ui.FeaturesUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class CreateFeatureSetHandler { - - @Execute - public void execute(IEclipseContext context) { - String domain = FeaturesPackage.eNAME; - String perspectiveId = FeaturesUi.PERSPECTIVE_MAIN; - LocWokbench.createDomainResource(context, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/LoadFeatureSetHandler.java b/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/LoadFeatureSetHandler.java deleted file mode 100644 index d82d8bd8d..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/features/ui/handlers/LoadFeatureSetHandler.java +++ /dev/null @@ -1,30 +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.features.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.features.model.meta.FeaturesPackage; -import org.eclipse.passage.loc.features.ui.FeaturesUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class LoadFeatureSetHandler { - - @Execute - public void execute(IEclipseContext eclipseContext) { - String domain = FeaturesPackage.eNAME; - String perspectiveId = FeaturesUi.PERSPECTIVE_MAIN; - LocWokbench.loadDomainResource(eclipseContext, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.java b/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.java deleted file mode 100644 index df4b25a97..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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: - * Elena Parovyshnaya - initial API and implementation - * ArSysOp - ongoing support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.features.ui.i18n; - -import org.eclipse.osgi.util.NLS; - -public class FeatureUiMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.features.ui.i18n.FeatureUiMessages"; //$NON-NLS-1$ - public static String FeaturesUi_select_feature_title; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, FeatureUiMessages.class); - } - - private FeatureUiMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.properties b/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.properties deleted file mode 100644 index 3c167cdcc..000000000 --- a/bundles/org.eclipse.passage.loc.features.ui/src/org/eclipse/passage/loc/internal/features/ui/i18n/FeatureUiMessages.properties +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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: -# Elena Parovyshnaya - initial API and implementation -# ArSysOp - ongoing support -############################################################################### -FeaturesUi_select_feature_title=Select Feature diff --git a/bundles/org.eclipse.passage.loc.licenses.core/.classpath b/bundles/org.eclipse.passage.loc.licenses.core/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.core/.project b/bundles/org.eclipse.passage.loc.licenses.core/.project deleted file mode 100644 index 166ba78e4..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.licenses.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.licenses.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.licenses.core/META-INF/MANIFEST.MF deleted file mode 100644 index 87e1c6c71..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,32 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.licenses.core -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.licenses.core;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.passage.lic.base;bundle-version="0.0.0", - org.eclipse.passage.lic.emf;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.keys.model;bundle-version="0.0.0", - org.eclipse.passage.lic.licenses.model;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.users.model;bundle-version="0.0.0", - org.eclipse.passage.loc.agreements.core;bundle-version="0.0.0", - org.eclipse.passage.loc.e4;bundle-version="0.0.0", - org.eclipse.passage.loc.products.core;bundle-version="0.0.0", - org.eclipse.passage.loc.users.core;bundle-version="0.0.0", - org.eclipse.passage.loc.equinox;bundle-version="0.0.0" -Export-Package: org.eclipse.passage.loc.internal.licenses; - x-friends:="org.eclipse.passage.loc.licenses.emfforms, - org.eclipse.passage.loc.licenses.ui, - org.eclipse.passage.loc.dashboard.ui, - org.eclipse.passage.loc.report.core, - org.eclipse.passage.loc.report.core.tests", - org.eclipse.passage.loc.internal.licenses.core;x-friends:="org.eclipse.passage.loc.dashboard.ui", - org.eclipse.passage.loc.internal.licenses.core.request;x-friends:="org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.licenses.ui" -Import-Package: org.osgi.service.event;version="1.0.0", - org.slf4j;version="1.7.36" -Bundle-ActivationPolicy: lazy -Service-Component: OSGI-INF/*.xml diff --git a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 04c3990d3..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,24 +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 Licenses Core -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\ - -extension-point.name = License Pack persistence lictener \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseDomainRegistry.xml b/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseDomainRegistry.xml deleted file mode 100644 index e37c81f1f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseDomainRegistry.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseOperatorServiceImpl.xml b/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseOperatorServiceImpl.xml deleted file mode 100644 index ce6bbe4e3..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicenseOperatorServiceImpl.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicensesSelectionCommandAdvisor.xml b/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicensesSelectionCommandAdvisor.xml deleted file mode 100644 index ff165ea57..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/OSGI-INF/org.eclipse.passage.loc.internal.licenses.core.LicensesSelectionCommandAdvisor.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.core/about.html b/bundles/org.eclipse.passage.loc.licenses.core/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.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.licenses.core/build.properties b/bundles/org.eclipse.passage.loc.licenses.core/build.properties deleted file mode 100644 index 96a8704a4..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/build.properties +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# Copyright (c) 2018, 2022 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,\ - plugin.xml -src.includes = schema/ diff --git a/bundles/org.eclipse.passage.loc.licenses.core/plugin.xml b/bundles/org.eclipse.passage.loc.licenses.core/plugin.xml deleted file mode 100644 index ad2dd02eb..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/plugin.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.core/schema/issue.exsd b/bundles/org.eclipse.passage.loc.licenses.core/schema/issue.exsd deleted file mode 100644 index 328b5b738..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/schema/issue.exsd +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - instanciated and called on a license pack persistence phase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Enter the first release in which this extension point appears.] - - - - - - - - - [Enter extension point usage example here.] - - - - - - - - - [Enter API information here.] - - - - - - - - - [Enter information about supplied implementation of this extension point.] - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistry.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistry.java deleted file mode 100644 index 73c01b2b6..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistry.java +++ /dev/null @@ -1,26 +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.licenses; - -import java.util.Collection; -import java.util.Optional; - -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; - -public interface LicenseRegistry { - - Collection plans(); - - Optional plan(String id); - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistryEvents.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistryEvents.java deleted file mode 100644 index c6133fbf1..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/LicenseRegistryEvents.java +++ /dev/null @@ -1,122 +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.licenses; - -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; - -/** - * License registry events and event topic definitions. - * - * @since 0.4.0 - */ -public final class LicenseRegistryEvents { - - /** - * Base name of all Licenses events - */ - public static final String LICENSES_TOPIC_BASE = "org/eclipse/passage/lic/licenses/registry"; //$NON-NLS-1$ - - /** - * Base name of all License Plan events - * - * @since 0.5.0 - */ - public static final String LICENSE_PLAN_TOPIC_BASE = LICENSES_TOPIC_BASE + TOPIC_SEP + "LicensePlan"; //$NON-NLS-1$ - - /** - * License Plan create event - * - * @since 0.5.0 - */ - public static final String LICENSE_PLAN_CREATE = LICENSE_PLAN_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * License Plan read event - * - * @since 0.5.0 - */ - public static final String LICENSE_PLAN_READ = LICENSE_PLAN_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * License Plan update event - * - * @since 0.5.0 - */ - public static final String LICENSE_PLAN_UPDATE = LICENSE_PLAN_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * License Plan delete event - * - * @since 0.5.0 - */ - public static final String LICENSE_PLAN_DELETE = LICENSE_PLAN_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all License Pack events - */ - public static final String LICENSE_PACK_TOPIC_BASE = LICENSES_TOPIC_BASE + TOPIC_SEP + "LicensePack"; //$NON-NLS-1$ - - /** - * License Pack create event - */ - public static final String LICENSE_PACK_CREATE = LICENSE_PACK_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * License Pack read event - */ - public static final String LICENSE_PACK_READ = LICENSE_PACK_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * License Pack update event - */ - public static final String LICENSE_PACK_UPDATE = LICENSE_PACK_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * License Pack delete event - */ - public static final String LICENSE_PACK_DELETE = LICENSE_PACK_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all License Grant events - */ - public static final String LICENSE_GRANT_TOPIC_BASE = LICENSES_TOPIC_BASE + TOPIC_SEP + "LicenseGrant"; //$NON-NLS-1$ - - /** - * License Grant create event - */ - public static final String LICENSE_GRANT_CREATE = LICENSE_GRANT_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * License Grant read event - */ - public static final String LICENSE_GRANT_READ = LICENSE_GRANT_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * License Grant update event - */ - public static final String LICENSE_GRANT_UPDATE = LICENSE_GRANT_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * License Grant delete event - */ - public static final String LICENSE_GRANT_DELETE = LICENSE_GRANT_TOPIC_BASE + TOPIC_SEP + DELETE; - - private LicenseRegistryEvents() { - // block - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedFloatingLicense.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedFloatingLicense.java deleted file mode 100644 index d60a4dcfe..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedFloatingLicense.java +++ /dev/null @@ -1,40 +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.licenses.core; - -import java.nio.file.Path; -import java.util.List; - -import org.eclipse.passage.loc.internal.api.IssuedFloatingLicense; - -public final class BaseIssuedFloatingLicense implements IssuedFloatingLicense { - - private final Path residence; - private final List files; - - public BaseIssuedFloatingLicense(Path residence, List files) { - this.residence = residence; - this.files = files; - } - - @Override - public Path residence() { - return residence; - } - - @Override - public List files() { - return files; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedLicense.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedLicense.java deleted file mode 100644 index f6edce05a..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/BaseIssuedLicense.java +++ /dev/null @@ -1,51 +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.licenses.core; - -import java.nio.file.Path; -import java.util.Objects; - -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; -import org.eclipse.passage.loc.internal.api.IssuedLicense; - -final class BaseIssuedLicense implements IssuedLicense { - - private final PersonalLicensePack license; - private final Path encrypted; - private final Path decrypted; - - BaseIssuedLicense(PersonalLicensePack license, Path encrypted, Path decrypted) { - Objects.requireNonNull(license, "BaseIssuedLicense::license"); //$NON-NLS-1$ - Objects.requireNonNull(encrypted, "BaseIssuedLicense::encrypted"); //$NON-NLS-1$ - Objects.requireNonNull(decrypted, "BaseIssuedLicense::decrypted"); //$NON-NLS-1$ - this.license = license; - this.encrypted = encrypted; - this.decrypted = decrypted; - } - - @Override - public PersonalLicensePack license() { - return license; - } - - @Override - public Path encrypted() { - return encrypted; - } - - @Override - public Path decrypted() { - return decrypted; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ContributedLicensePackIssueListener.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ContributedLicensePackIssueListener.java deleted file mode 100644 index db227cb86..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ContributedLicensePackIssueListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.eclipse.passage.loc.internal.licenses.core; - -import java.nio.file.Path; -import java.util.Collection; -import java.util.List; - -import org.eclipse.passage.lic.internal.equinox.ServiceExtensions; -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; - -final class ContributedLicensePackIssueListener implements LicensePackIssueListener { - - private final List contributed; - - ContributedLicensePackIssueListener() { - this.contributed = read(); - } - - @Override - public void floating(FloatingLicensePack pack, Collection configs, Path residence) { - contributed.forEach(listener -> listener.floating(pack, configs, residence)); - - } - - @Override - public void personal(PersonalLicensePack license, Path residence) { - contributed.forEach(listener -> listener.personal(license, residence)); - } - - private List read() { - return new ServiceExtensions(// - "org.eclipse.passage.loc.licenses.core", //$NON-NLS-1$ - "issue", //$NON-NLS-1$ - LicensePackIssueListener.class)// - .get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/FloatingLicensePackFromRequest.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/FloatingLicensePackFromRequest.java deleted file mode 100644 index 1b920afce..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/FloatingLicensePackFromRequest.java +++ /dev/null @@ -1,235 +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.internal.licenses.core; - -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -import org.eclipse.emf.common.util.BasicEList; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.passage.lic.api.EvaluationType; -import org.eclipse.passage.lic.base.conditions.MatchingRuleForIdentifier; -import org.eclipse.passage.lic.internal.base.inspection.hardware.Disk; -import org.eclipse.passage.lic.internal.licenses.model.EmptyFeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.CompanyRef; -import org.eclipse.passage.lic.licenses.model.api.EvaluationInstructions; -import org.eclipse.passage.lic.licenses.model.api.FeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack; -import org.eclipse.passage.lic.licenses.model.api.FloatingLicenseRequisites; -import org.eclipse.passage.lic.licenses.model.api.FloatingServer; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.LicensePlanFeature; -import org.eclipse.passage.lic.licenses.model.api.ProductRef; -import org.eclipse.passage.lic.licenses.model.api.UserGrant; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriod; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed; -import org.eclipse.passage.lic.licenses.model.api.VersionMatch; -import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.loc.internal.api.FloatingLicenseRequest; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistry; -import org.eclipse.passage.loc.internal.users.UserRegistry; - -final class FloatingLicensePackFromRequest implements Supplier { - - private final FloatingLicenseRequest request; - private final LicenseRegistry licenses; - private final UserRegistry users; - private final Optional template; - - FloatingLicensePackFromRequest(FloatingLicenseRequest request, Optional template, - LicenseRegistry licenses, UserRegistry users) { - this.request = request; - this.template = template; - this.licenses = licenses; - this.users = users; - } - - @Override - public FloatingLicensePack get() { - FloatingLicensePack pack = LicensesFactory.eINSTANCE.createFloatingLicensePack(); - pack.setLicense(license()); - pack.setHost(floatingServer()); - userGrants().forEach(pack.getUsers()::add); - featureGrants(pack).forEach(pack.getFeatures()::add); - return pack; - } - - private FloatingLicenseRequisites license() { - FloatingLicenseRequisites license = LicensesFactory.eINSTANCE.createFloatingLicenseRequisites(); - license.setCompany(company()); - license.setIdentifier(request.identifier()); - license.setIssueDate(new Date()); - license.setPlan(request.plan()); - license.setProduct(product()); - license.setValid(period()); - return license; - } - - private FloatingServer floatingServer() { - FloatingServer server = LicensesFactory.eINSTANCE.createFloatingServer(); - server.setIdentifier(serverId()); - server.setAuthentication(serverAuthentication()); - return server; - } - - private String serverId() { - return template// - .map(l -> l.getHost().getIdentifier())// - .orElse("Floating-Server-A"); //$NON-NLS-1$ - } - - private EvaluationInstructions serverAuthentication() { - EvaluationInstructions auth = LicensesFactory.eINSTANCE.createEvaluationInstructions(); - auth.setType(serverAuthenticationType()); - auth.setExpression(serverAuthenticationExpression()); - return auth; - } - - private String serverAuthenticationType() { - return template// - .map(l -> l.getHost().getAuthentication().getType())// - .orElseGet(this::defaultEvaluationType); - } - - private String serverAuthenticationExpression() { - return template// - .map(l -> l.getHost().getAuthentication().getExpression())// - .orElse(String.format("%s=%s", new Disk.Serial().toString(), "?")); //$NON-NLS-1$ //$NON-NLS-2$ - } - - private CompanyRef company() { - UserOrigin origin = users.user(request.users().iterator().next()).get().getOrigin(); - CompanyRef company = LicensesFactory.eINSTANCE.createCompanyRef(); - company.setIdentifier(origin.getIdentifier()); - company.setName(origin.getName()); - company.setInfo(Optional.ofNullable(origin.getDescription()).orElse("")); //$NON-NLS-1$ - return company; - } - - private ValidityPeriod period() { - ValidityPeriodClosed period = LicensesFactory.eINSTANCE.createValidityPeriodClosed(); - period.setFrom(request.validFrom()); - period.setUntil(request.validUntil()); - return period; - } - - private ProductRef product() { - ProductRef product = LicensesFactory.eINSTANCE.createProductRef(); - product.setIdentifier(request.productIdentifier()); - product.setVersion(request.productVersion()); - return product; - } - - private Collection userGrants() { - return request.users().stream()// - .map(users::user)// - .map(Optional::get)// - .map(this::userGrant)// - .collect(Collectors.toSet()); - } - - private UserGrant userGrant(User user) { - UserGrant grant = LicensesFactory.eINSTANCE.createUserGrant(); - grant.setAuthentication(userAuthentication(user)); - grant.setUser(user.getContact().getEmail()); - return grant; - } - - private EvaluationInstructions userAuthentication(User user) { - EvaluationInstructions auth = LicensesFactory.eINSTANCE.createEvaluationInstructions(); - auth.setExpression(userAuthenticationExpression(user)); - auth.setType(userAuthenticationType(user)); - return auth; - } - - private String userAuthenticationType(User user) { - return template// - .flatMap(l -> forUser(l.getUsers(), user))// - .map(UserGrant::getAuthentication)// - .map(EvaluationInstructions::getType)// - .orElseGet(user::getPreferredEvaluationType); - } - - private String userAuthenticationExpression(User user) { - return template// - .flatMap(l -> forUser(l.getUsers(), user))// - .map(UserGrant::getAuthentication)// - .map(EvaluationInstructions::getExpression)// - .orElseGet(user::getPreferredEvaluationExpression); - } - - private Optional forUser(List all, User user) { - return all.stream().filter(u -> user.getContact().getEmail().equals(u.getUser())).findFirst(); - } - - private Collection featureGrants(FloatingLicensePack pack) { - AtomicInteger counter = new AtomicInteger(0); - return licenses.plan(request.plan())// - .map(LicensePlan::getFeatures)// - .orElseGet(BasicEList::new).stream()// - .map(feature -> featureGrant(feature, pack, counter.getAndIncrement())) // - .collect(Collectors.toSet()); - } - - private FeatureGrant featureGrant(LicensePlanFeature feature, FloatingLicensePack pack, int no) { - FeatureGrant grant = new EmptyFeatureGrant().get(); - String fid = feature.getFeature().getIdentifier(); - grant.setIdentifier(String.format("%s#%d", request.identifier(), no)); //$NON-NLS-1$ - grant.setCapacity(request.defaultCapacity()); - grant.getFeature().setIdentifier(fid); - grant.getFeature().setVersionMatch(version(feature)); - grant.setValid(featureGrantPeriod(fid)); - grant.setVivid(featureGrantVivid(fid)); - grant.setPack(pack); - return grant; - } - - private ValidityPeriod featureGrantPeriod(String feature) { - return template// - .flatMap(pack -> forFeature(pack.getFeatures(), feature)) // - .map(g -> EcoreUtil.copy(g.getValid()))// - .orElseGet(this::period); - } - - private long featureGrantVivid(String feature) { - return template// - .flatMap(pack -> forFeature(pack.getFeatures(), feature)) // - .map(FeatureGrant::getVivid)// - .orElse(60L); - } - - private Optional forFeature(List all, String feature) { - return all.stream().filter(g -> feature.equals(g.getFeature().getIdentifier())).findFirst(); - } - - private VersionMatch version(LicensePlanFeature feature) { - VersionMatch version = LicensesFactory.eINSTANCE.createVersionMatch(); - version.setVersion(feature.getFeature().getVersionMatch().getVersion()); - version.setRule(new MatchingRuleForIdentifier(Optional.ofNullable(// - feature.getFeature().getVersionMatch().getRule())).get().identifier()); - return version; - } - - private String defaultEvaluationType() { - return new EvaluationType.Hardware().identifier(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssueFloatingLicense.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssueFloatingLicense.java deleted file mode 100644 index d8ca7aaa4..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssueFloatingLicense.java +++ /dev/null @@ -1,218 +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.internal.licenses.core; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.function.BinaryOperator; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.api.diagnostic.Trouble; -import org.eclipse.passage.lic.base.BaseLicensedProduct; -import org.eclipse.passage.lic.base.BaseServiceInvocationResult; -import org.eclipse.passage.lic.base.diagnostic.NoSevereErrors; -import org.eclipse.passage.lic.base.diagnostic.SumOfLists; -import org.eclipse.passage.lic.base.io.FloatingFileExtension; -import org.eclipse.passage.lic.emf.validation.ErrorMessages; -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.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.ProductRef; -import org.eclipse.passage.lic.licenses.model.api.UserGrant; -import org.eclipse.passage.loc.internal.agreements.AgreementRegistry; -import org.eclipse.passage.loc.internal.api.IssuedFloatingLicense; -import org.eclipse.passage.loc.internal.equinox.OperatorProductService; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistry; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; -import org.eclipse.passage.loc.internal.licenses.core.issue.FloatingLicenseIssuingProtection; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.core.PublicKeyReplcated; -import org.eclipse.passage.loc.licenses.trouble.code.LicenseAgreementsAttachFailed; -import org.eclipse.passage.loc.licenses.trouble.code.LicenseIssuingFailed; -import org.eclipse.passage.loc.licenses.trouble.code.LicenseValidationFailed; - -@SuppressWarnings("restriction") -final class IssueFloatingLicense { - - private final LicenseRegistry licenses; - private final AgreementRegistry agreements; - private final ProductRegistry products; - private final OperatorProductService operator; - - IssueFloatingLicense(LicenseRegistry licenses, AgreementRegistry agreements, ProductRegistry products, - OperatorProductService operator) { - this.licenses = licenses; - this.agreements = agreements; - this.products = products; - this.operator = operator; - } - - ServiceInvocationResult issue(FloatingLicensePack pack, - Collection configs) { - FloatingLicensePack license; - try { - license = new Builder(pack, configs)// - .signed()// - .shielded()// - .withAgreements()// - .get(); - } catch (LicensingException e) { - return new BaseServiceInvocationResult<>( - new Trouble(new LicenseAgreementsAttachFailed(), e.getMessage(), e)); - } - try { - new UpdateLicensePlan(licenses).withFloating(license); - } catch (IOException e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), - LicensesCoreMessages.LicenseOperatorServiceImpl_error_io, e)); - } - return persistLicenseFiles(EcoreUtil.copy(license), configs); - } - - private ServiceInvocationResult persistLicenseFiles(FloatingLicensePack pack, - Collection configs) { - LicensedProduct product = product(pack.getLicense().getProduct()); - Path residence = new LicensePackResidence(pack.getLicense()).get(); - ServiceInvocationResult> license = // - persist(pack, product, residence, decryptedFile(pack), encryptedFile(pack)); - BinaryOperator>> sum = new BaseServiceInvocationResult.Sum<>( - new SumOfLists()); - ServiceInvocationResult> withConfigs = configs.stream()// - .map(access -> persist(access, product, residence, decryptedFile(access), encryptedFile(access)))// - .reduce(license, sum); - ServiceInvocationResult> withKey = sum.apply(withConfigs, replicateKey(product, residence)); - if (!new NoSevereErrors().test(withKey.diagnostic())) { - return new BaseServiceInvocationResult<>(withKey.diagnostic()); - } - new ContributedLicensePackIssueListener().floating(pack, configs, residence); - return new BaseServiceInvocationResult<>(new BaseIssuedFloatingLicense(residence, withKey.data().get())); - } - - private ServiceInvocationResult> persist(EObject target, LicensedProduct product, // - Path folder, String decrypted, String encrypted) { - // validate - Optional errors = new ErrorMessages().apply(target); - if (errors.isPresent()) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseValidationFailed(), errors.get())); - } - // persist decoded - Path lic; - try { - lic = new PersistedDecoded(folder, target).write(decrypted); - } catch (LicensingException e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), // - LicensesCoreMessages.LicenseOperatorServiceImpl_floating_save_decoded_failed, e)); - } - // persist encoded - Path licen; - try { - licen = new PersistedEncoded(product, lic, new ProductPassword(products, operator)).write(encrypted); - } catch (LicensingException e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), // - LicensesCoreMessages.LicenseOperatorServiceImpl_floating_save_encoded_failed, e)); - } - return new BaseServiceInvocationResult<>(Arrays.asList(lic, licen)); - } - - private ServiceInvocationResult> replicateKey(LicensedProduct product, Path folder) { - // copy product public key - Path key; - try { - key = new PublicKeyReplcated(product, folder).store(); - } catch (Exception e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), // - LicensesCoreMessages.LicenseOperatorServiceImpl_floating_save_product_key, e)); - } - return new BaseServiceInvocationResult<>(Collections.singletonList(key)); - } - - private LicensedProduct product(ProductRef ref) { - return new BaseLicensedProduct(ref.getIdentifier(), ref.getVersion()); - } - - private String decryptedFile(FloatingLicensePack pack) { - return pack.getLicense().getIdentifier() + new FloatingFileExtension.FloatingLicenseDecrypted().get(); - } - - private String encryptedFile(FloatingLicensePack pack) { - return pack.getLicense().getIdentifier() + new FloatingFileExtension.FloatingLicenseEncrypted().get(); - } - - private String decryptedFile(FloatingLicenseAccess access) { - return accessFile(access, new FloatingFileExtension.FloatingLicenseAccessDecrypted()); - } - - private String encryptedFile(FloatingLicenseAccess access) { - return accessFile(access, new FloatingFileExtension.FloatingLicenseAccessEncrypted()); - } - - private String accessFile(FloatingLicenseAccess access, FloatingFileExtension ext) { - return String.format("%s_%s%s", //$NON-NLS-1$ - access.getOriginLicensePack(), // - access.getUser(), // - ext.get()); - } - - private final class Builder implements Supplier { - - private final FloatingLicensePack pack; - private final Collection configs; - - Builder(FloatingLicensePack template, Collection configs) { - this.pack = EcoreUtil.copy(template); - this.configs = configs; - } - - Builder shielded() { - new FloatingLicenseIssuingProtection().accept(pack); - Collection users = pack.getUsers().stream()// - .map(UserGrant::getUser)// - .collect(Collectors.toSet()); - Collection redundant = configs.stream()// - .filter(c -> !users.contains(c.getUser())).collect(Collectors.toSet()); - configs.removeAll(redundant); - return this; - } - - Builder signed() { - new LicenseSignature().accept(pack.getLicense()); - return this; - } - - Builder withAgreements() throws LicensingException { - new LicenseAgreements(agreements).install(plan(), pack.getLicense()); - return this; - } - - @Override - public FloatingLicensePack get() { - return pack; - } - - private LicensePlan plan() throws LicensingException { - return licenses.plan(pack.getLicense().getPlan()).get(); - } - - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssuePersonalLicense.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssuePersonalLicense.java deleted file mode 100644 index 62c64cb0c..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/IssuePersonalLicense.java +++ /dev/null @@ -1,175 +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.internal.licenses.core; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.Date; -import java.util.Optional; -import java.util.UUID; -import java.util.function.Supplier; - -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.api.diagnostic.Trouble; -import org.eclipse.passage.lic.base.BaseLicensedProduct; -import org.eclipse.passage.lic.base.BaseServiceInvocationResult; -import org.eclipse.passage.lic.base.io.PassageFileExtension; -import org.eclipse.passage.lic.emf.validation.ErrorMessages; -import org.eclipse.passage.lic.internal.licenses.model.AssignGrantIdentifiers; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; -import org.eclipse.passage.loc.internal.agreements.AgreementRegistry; -import org.eclipse.passage.loc.internal.api.IssuedLicense; -import org.eclipse.passage.loc.internal.e4.events.OperatorLicenseEvents; -import org.eclipse.passage.loc.internal.equinox.OperatorProductService; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistry; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; -import org.eclipse.passage.loc.internal.licenses.core.issue.PersonalLicenseIssuingProtection; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.licenses.trouble.code.LicenseAgreementsAttachFailed; -import org.eclipse.passage.loc.licenses.trouble.code.LicenseIssuingFailed; -import org.eclipse.passage.loc.licenses.trouble.code.LicenseValidationFailed; -import org.osgi.service.event.EventAdmin; - -@SuppressWarnings("restriction") -final class IssuePersonalLicense { - - private final LicenseRegistry licenses; - private final AgreementRegistry agreements; - private final ProductRegistry products; - private final OperatorProductService operator; - private final EventAdmin events; - - IssuePersonalLicense(LicenseRegistry licenses, AgreementRegistry agreements, ProductRegistry products, - OperatorProductService operator, EventAdmin events) { - this.licenses = licenses; - this.agreements = agreements; - this.products = products; - this.operator = operator; - this.events = events; - } - - ServiceInvocationResult issue(Supplier template) { - PersonalLicensePack license; - try { - license = new Builder(template.get())// - .adjusted()// - .guarded()// - .signed()// - .withAgreements()// - .get(); - } catch (LicensingException e) { - return new BaseServiceInvocationResult<>( - new Trouble(new LicenseAgreementsAttachFailed(), e.getMessage(), e)); - } - Optional errors = new ErrorMessages().apply(license); - if (errors.isPresent()) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseValidationFailed(), errors.get())); - } - try { - new UpdateLicensePlan(licenses).withPersonal(EcoreUtil.copy(license)); - } catch (IOException e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), - LicensesCoreMessages.LicenseOperatorServiceImpl_error_io, e)); - } - Path path = new LicensePackResidence(license.getLicense()).get(); - - Path decrypted; - try { - decrypted = decrypted(license, path); - } catch (LicensingException e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), - LicensesCoreMessages.LicenseOperatorServiceImpl_failed_to_save_decoded, e)); - } - - Path encrypted; - try { - encrypted = encrypted(license, product(license), decrypted); - } catch (LicensingException e) { - return new BaseServiceInvocationResult<>(new Trouble(new LicenseIssuingFailed(), - LicensesCoreMessages.LicenseOperatorServiceImpl_export_error, e)); - } - new ContributedLicensePackIssueListener().personal(license, path); - return result(license, decrypted, encrypted); - } - - private BaseServiceInvocationResult result(PersonalLicensePack license, Path decrypted, - Path encrypted) { - return new BaseServiceInvocationResult<>(new BaseIssuedLicense(license, encrypted, decrypted)); - } - - private Path encrypted(PersonalLicensePack license, LicensedProduct product, Path decrypted) - throws LicensingException { - Path encrypted = new PersistedEncoded(product, decrypted, new ProductPassword(products, operator))// - .write(license.getLicense().getIdentifier() + new PassageFileExtension.LicenseEncrypted().get()); - events.postEvent(new OperatorLicenseEvents().encodedIssued(encrypted.toString())); - return encrypted; - } - - private Path decrypted(PersonalLicensePack license, Path path) throws LicensingException { - Path decrypted = new PersistedDecoded(path, license)// - .write(license.getLicense().getIdentifier() + new PassageFileExtension.LicenseDecrypted().get()); - events.postEvent(new OperatorLicenseEvents().decodedIssued(decrypted.toString())); - return decrypted; - } - - private BaseLicensedProduct product(PersonalLicensePack license) { - return new BaseLicensedProduct(// - license.getLicense().getProduct().getIdentifier(), // - license.getLicense().getProduct().getVersion()); - } - - private final class Builder implements Supplier { - - private final PersonalLicensePack pack; - - Builder(PersonalLicensePack template) { - this.pack = EcoreUtil.copy(template); - } - - Builder signed() { - new LicenseSignature().accept(pack.getLicense()); - return this; - } - - Builder withAgreements() throws LicensingException { - new LicenseAgreements(agreements).install(plan(), pack.getLicense()); - return this; - } - - Builder adjusted() { - pack.getLicense().setIdentifier(UUID.randomUUID().toString()); - pack.getLicense().setIssueDate(new Date()); - new AssignGrantIdentifiers().accept(pack); - return this; - } - - Builder guarded() { - new PersonalLicenseIssuingProtection().accept(pack); - return this; - } - - @Override - public PersonalLicensePack get() { - return pack; - } - - private LicensePlan plan() throws LicensingException { - return licenses.plan(pack.getLicense().getPlan()).get(); - } - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseAgreements.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseAgreements.java deleted file mode 100644 index fb429dee4..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseAgreements.java +++ /dev/null @@ -1,102 +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.licenses.core; - -import java.util.Collection; -import java.util.Optional; - -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.agreements.model.api.Agreement; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.api.io.Hashes; -import org.eclipse.passage.lic.api.io.HashesRegistry; -import org.eclipse.passage.lic.licenses.model.api.AgreementData; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.LicenseRequisites; -import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory; -import org.eclipse.passage.loc.internal.agreements.AgreementRegistry; -import org.eclipse.passage.loc.internal.api.workspace.Agreements; -import org.eclipse.passage.loc.internal.equinox.AgreementsService; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; - -final class LicenseAgreements { - - private final AgreementRegistry registry; - - LicenseAgreements(AgreementRegistry registry) { - this.registry = registry; - } - - void install(LicensePlan plan, LicenseRequisites license) throws LicensingException { - Agreements service = new AgreementsService().get(); // TODO: cashed field - Hashes hashes = hashes();// TODO: cashed field - for (String identifier : plan.getAgreements()) { - installAgreement(license, registry.agreement(identifier) - .orElseThrow(() -> new LicensingException( - NLS.bind(LicensesCoreMessages.LicenseAgreements_e_agreement_not_found, identifier))), - service, hashes); - } - - } - - private void installAgreement(LicenseRequisites license, Agreement agreement, Agreements service, Hashes hashes) - throws LicensingException { - if (!service.exists(agreement.getFile(), agreement)) { - throw new LicensingException(String.format(// - LicensesCoreMessages.LicenseOperatorServiceImpl_failed_to_find_agreement_file, // - service.located(agreement.getFile(), agreement).info(), // - agreement.getName())); - } - license.getAgreements().add(data(agreement, service, hashes)); - } - - private AgreementData data(Agreement agreement, Agreements service, Hashes hashes) throws LicensingException { - AgreementData data = LicensesFactory.eINSTANCE.createAgreementData(); - data.setIdentifier(agreement.getIdentifier()); - data.setName(agreement.getName()); - data.setFile(agreement.getFile()); - data.setContentType(agreement.getMime()); - byte[] content = content(agreement, service); - data.setContent(content); - data.setHashAlgo(hashes.id().toString()); - data.setHash(hashes.get(content)); - return data; - } - - private byte[] content(Agreement agreement, Agreements service) throws LicensingException { - try { - return service.located(agreement.getFile(), agreement).content(); - } catch (Exception e) { - throw new LicensingException(String.format(// - LicensesCoreMessages.LicenseOperatorServiceImpl_failed_to_attach_agreement, // - agreement.getName(), // - service.located(agreement.getFile(), agreement).info(), // - e)); - } - } - - @SuppressWarnings("restriction") - private Hashes hashes() throws LicensingException { - Optional service = new OperatorGearAware().withGear(gear -> Optional.of(gear.hashes())); - if (!service.isPresent()) { - throw new LicensingException("There is no HashesRegistry service supplied by Operator Gear"); //$NON-NLS-1$ - } - Collection all = service.get().get().services(); - if (all.isEmpty()) { - throw new LicensingException("There is no Hashes service supplied by Operator Gear"); //$NON-NLS-1$ - } - return all.iterator().next(); - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseDomainRegistry.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseDomainRegistry.java deleted file mode 100644 index db62b74cd..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseDomainRegistry.java +++ /dev/null @@ -1,184 +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.licenses.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.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.internal.equinox.events.EquinoxEvent; -import org.eclipse.passage.lic.internal.licenses.model.util.LicensesResourceImpl; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -import org.eclipse.passage.loc.internal.api.workspace.KnownResources; -import org.eclipse.passage.loc.internal.api.workspace.Licenses; -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.eclipse.passage.loc.internal.licenses.LicenseRegistry; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistryEvents; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; -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 + '=' + LicensesPackage.eNAME, - EditingDomainRegistryAccess.PROPERTY_FILE_EXTENSION + '=' + "licenses_xmi" }) -public final class LicenseDomainRegistry extends BaseDomainRegistry - implements LicenseRegistry, EditingDomainRegistry { - - private final Map plans = 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); - } - - @Override - @Reference - public void bindGear(OperatorGearSupplier supplier) { - super.bindGear(supplier); - } - - @Override - public void unbindGear(OperatorGearSupplier supplier) { - super.unbindGear(supplier); - } - - @Activate - public void load(Map properties) { - super.activate(properties); - } - - @Deactivate - public void unload(Map properties) { - plans.clear(); - super.deactivate(properties); - } - - @Override - public String getFileExtension() { - return "licenses_xmi"; //$NON-NLS-1$ - } - - @Override - public Class getContentClass() { - return LicensePlan.class; - } - - @Override - public String resolveIdentifier(LicensePlan content) { - return content.getIdentifier(); - } - - @Override - public Collection plans() { - return new ArrayList<>(plans.values()); - } - - @Override - public Optional plan(String identifier) { - return Optional.ofNullable(plans.get(identifier)); - } - - void registerLicensePlan(LicensePlan licensePlan) { - String identifier = licensePlan.getIdentifier(); - LicensePlan existing = plans.put(identifier, licensePlan); - if ((existing != null) && (existing != licensePlan)) { - String msg = NLS.bind(LicensesCoreMessages.LicenseDomain_instance_duplication_message, existing, - licensePlan); - Platform.getLog(getClass()).warn(msg); - } - events().postEvent(new EquinoxEvent(LicenseRegistryEvents.LICENSE_PLAN_CREATE, licensePlan).get()); - } - - void unregisterLicensePlan(String identifier) { - LicensePlan removed = plans.remove(identifier); - if (removed != null) { - events().postEvent(new EquinoxEvent(LicenseRegistryEvents.LICENSE_PLAN_DELETE, removed).get()); - } - } - - private EventAdmin events() { - return events.stream().findAny().get(); - } - - @Override - protected DomainContentAdapter createContentAdapter() { - return new LicensesDomainRegistryTracker(this); - } - - @Override - public EClass getContentClassifier() { - return LicensesPackage.eINSTANCE.getLicensePlan(); - } - - @Override - public EStructuralFeature getContentIdentifierAttribute() { - return LicensesPackage.eINSTANCE.getLicensePlan_Identifier(); - } - - @Override - public EStructuralFeature getContentNameAttribute() { - return LicensesPackage.eINSTANCE.getLicensePlan_Name(); - } - - @Override - public void registerContent(LicensePlan content) { - registerLicensePlan(content); - } - - @Override - public void unregisterContent(String identifier) { - unregisterLicensePlan(identifier); - } - - @Override - protected final Resource createResource(URI uri) { - return new LicensesResourceImpl(uri); - } - - @Override - protected boolean emfResource(ResourceHandle handle) { - return Licenses.xmi.equals(handle.type()) || Licenses.xmi033.equals(handle.type()); - } - - @Override - protected KnownResources knownResources(OperatorWorkspace workspace) { - return workspace.licenses(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseGrantFromRequest.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseGrantFromRequest.java deleted file mode 100644 index 535fb314d..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseGrantFromRequest.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 - *******************************************************************************/ -package org.eclipse.passage.loc.internal.licenses.core; - -import java.util.function.Supplier; - -import org.eclipse.passage.lic.internal.licenses.model.EmptyPersonalFeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.LicensePlanFeature; -import org.eclipse.passage.lic.licenses.model.api.PersonalFeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed; -import org.eclipse.passage.loc.internal.api.PersonalLicenseRequest; - -final class LicenseGrantFromRequest implements Supplier { - - private final LicensePlanFeature feature; - private final PersonalLicenseRequest request; - - public LicenseGrantFromRequest(LicensePlanFeature feature, PersonalLicenseRequest request) { - this.feature = feature; - this.request = request; - } - - @Override - public PersonalFeatureGrant get() { - PersonalFeatureGrant grant = new EmptyPersonalFeatureGrant().get(); - grant.getFeature().setIdentifier(feature.getFeature().getIdentifier()); - grant.getFeature().getVersionMatch().setVersion(feature.getFeature().getVersionMatch().getVersion()); - grant.getFeature().getVersionMatch().setRule(feature.getFeature().getVersionMatch().getRule()); - grant.setCapacity(1); - grant.getUserAuthentication().setExpression(request.conditionExpression()); - grant.getUserAuthentication().setType(request.conditionType()); - ((ValidityPeriodClosed) grant.getValid()).setFrom(request.validFrom()); - ((ValidityPeriodClosed) grant.getValid()).setUntil(request.validUntil()); - return grant; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseOperatorServiceImpl.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseOperatorServiceImpl.java deleted file mode 100644 index 89ca54fe2..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseOperatorServiceImpl.java +++ /dev/null @@ -1,151 +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.licenses.core; - -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; - -import org.eclipse.osgi.service.environment.EnvironmentInfo; -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; -import org.eclipse.passage.loc.internal.agreements.AgreementRegistry; -import org.eclipse.passage.loc.internal.api.FloatingLicenseRequest; -import org.eclipse.passage.loc.internal.api.IssuedFloatingLicense; -import org.eclipse.passage.loc.internal.api.IssuedLicense; -import org.eclipse.passage.loc.internal.api.OperatorLicenseService; -import org.eclipse.passage.loc.internal.api.PersonalLicenseRequest; -import org.eclipse.passage.loc.internal.equinox.OperatorProductService; -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.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.event.EventAdmin; - -@Component -public class LicenseOperatorServiceImpl implements OperatorLicenseService { - - private EnvironmentInfo environmentInfo; - private EventAdmin events; - private ProductRegistry products; - private UserRegistry users; - private LicenseRegistry licenses; - private AgreementRegistry agreements; - private OperatorProductService operator; - - @Reference - public void bindEnvironmentInfo(EnvironmentInfo environment) { - this.environmentInfo = environment; - } - - public void unbindEnvironmentInfo(EnvironmentInfo environment) { - if (Objects.equals(this.environmentInfo, environment)) { - this.environmentInfo = null; - } - } - - @Reference - public void bindEventAdmin(EventAdmin admin) { - this.events = admin; - } - - public void unbindEventAdmin(EventAdmin admin) { - if (Objects.equals(this.events, admin)) { - this.events = null; - } - } - - @Reference - public void bindProductRegistry(ProductRegistry registry) { - this.products = registry; - } - - public void unbindProductRegistry(ProductRegistry registry) { - if (Objects.equals(this.products, registry)) { - this.products = null; - } - } - - @Reference - public void bindLicenseRegistry(LicenseRegistry registry) { - this.licenses = registry; - } - - public void unbindLicenseRegistry(LicenseRegistry registry) { - if (Objects.equals(this.licenses, registry)) { - this.licenses = null; - } - } - - @Reference - public void bindAgreementRegistry(AgreementRegistry registry) { - this.agreements = registry; - } - - public void unbindAgreementRegistry(AgreementRegistry registry) { - if (Objects.equals(this.agreements, registry)) { - this.agreements = null; - } - } - - @Reference - public void bindUserRegistry(UserRegistry registry) { - this.users = registry; - } - - public void unbindUserRegistry(UserRegistry registry) { - if (Objects.equals(this.users, registry)) { - this.users = null; - } - } - - @Reference - public void bindProductOperatorService(OperatorProductService productService) { - this.operator = productService; - } - - public void unbindProductOperatorService(OperatorProductService productService) { - if (Objects.equals(this.operator, productService)) { - this.operator = null; - } - } - - @Override - public PersonalLicensePack createLicensePack(PersonalLicenseRequest request) { - return new PersonalLicensePackFromRequest(request, licenses).get(); - } - - @Override - public ServiceInvocationResult issueLicensePack(PersonalLicensePack template) { - return new IssuePersonalLicense(licenses, agreements, products, operator, events).issue(() -> template); - } - - @Override - public FloatingLicensePack createFloatingLicensePack(FloatingLicenseRequest request, - Optional template) { - return new FloatingLicensePackFromRequest(request, template, licenses, users).get(); - } - - @Override - public ServiceInvocationResult issueFloatingLicensePack(FloatingLicensePack pack, - Collection configs) { - Objects.requireNonNull(pack, - "LicenseOperatorServiceImpl::issueFloatingLicensePack: cannot issue license over no data"); //$NON-NLS-1$ - Objects.requireNonNull(configs, "LicenseOperatorServiceImpl::configs"); //$NON-NLS-1$ - return new IssueFloatingLicense(licenses, agreements, products, operator).issue(pack, configs); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackIssueListener.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackIssueListener.java deleted file mode 100644 index dc781f4c6..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackIssueListener.java +++ /dev/null @@ -1,28 +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.licenses.core; - -import java.nio.file.Path; -import java.util.Collection; - -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 LicensePackIssueListener { - - void floating(FloatingLicensePack pack, Collection configs, Path residence); - - void personal(PersonalLicensePack license, Path residence); - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackResidence.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackResidence.java deleted file mode 100644 index 6b27a7f76..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensePackResidence.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2022, 2023 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.licenses.core; - -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.base.io.UserHomeProductResidence; -import org.eclipse.passage.lic.licenses.model.api.LicenseRequisites; -import org.eclipse.passage.loc.internal.api.workspace.LicensePacks; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; - -@SuppressWarnings("restriction") -final class LicensePackResidence implements Supplier { - - private final LicenseRequisites license; - - LicensePackResidence(LicenseRequisites license) { - this.license = license; - } - - @Override - public Path get() { - return existing(residence()); - } - - private Path residence() { - return fromWorkspace().orElseGet(this::userHomeResidence); - } - - private Path userHomeResidence() { - return new UserHomeProductResidence(// - license.getProduct().getIdentifier(), // - license.getProduct().getVersion())// - .get()// - .resolve(license.getIdentifier()); - } - - private Optional fromWorkspace() { - try { - return new OperatorGearAware() - .withGear(gear -> Optional.of(fromWorkspace(gear.workspace().licensePacks()))); - } catch (LicensingException e) { - return Optional.empty(); - } - } - - private Path fromWorkspace(LicensePacks service) { - return Paths.get(service.packResidence(// - license.getIdentifier(), // - license.getProduct().getIdentifier(), // - license.getProduct().getVersion()// - ).uri()); - } - - private Path existing(Path folder) { - folder.toFile().mkdirs(); - return folder; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseSignature.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseSignature.java deleted file mode 100644 index dd7cc76fd..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicenseSignature.java +++ /dev/null @@ -1,93 +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.licenses.core; - -import java.util.Optional; -import java.util.function.Consumer; - -import org.eclipse.passage.lic.api.Framework; -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.api.conditions.ConditionOrigin; -import org.eclipse.passage.lic.api.diagnostic.Diagnostic; -import org.eclipse.passage.lic.api.requirements.Requirement; -import org.eclipse.passage.lic.api.restrictions.ExaminationCertificate; -import org.eclipse.passage.lic.base.BaseServiceInvocationResult; -import org.eclipse.passage.lic.base.diagnostic.DiagnosticExplained; -import org.eclipse.passage.lic.equinox.EquinoxPassage; -import org.eclipse.passage.lic.equinox.SuppliedFrameworkAware; -import org.eclipse.passage.lic.internal.licenses.convert.EIssuerSignature; -import org.eclipse.passage.lic.internal.licenses.model.signature.SignatureData; -import org.eclipse.passage.lic.licenses.model.api.LicenseRequisites; -import org.eclipse.passage.lic.licenses.model.api.Signature; -import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("restriction") -final class LicenseSignature implements Consumer { - - private final Logger log = LoggerFactory.getLogger(getClass()); - - @Override - public void accept(LicenseRequisites license) { - ServiceInvocationResult response = new SuppliedFrameworkAware() - .withFrameworkService(this::product); - if (response.data().isEmpty()) { - report(response.diagnostic()); - return; - } - license.setSignature(signature(response.data().get())); - } - - private void report(Diagnostic diagnostic) { - log.error(new DiagnosticExplained(diagnostic).get()); - } - - private ServiceInvocationResult product(Framework framework) { - return new BaseServiceInvocationResult<>(framework.product()); - } - - private Signature signature(LicensedProduct operator) { - Signature signature = LicensesFactory.eINSTANCE.createSignature(); - new SignatureData.LicensingOperatorName(signature).put(operator.identifier()); - new SignatureData.LicensingOperatorVersion(signature).put(operator.version()); - installParentSignature(signature, operator); - return signature; - } - - private void installParentSignature(Signature signature, LicensedProduct operator) { - ServiceInvocationResult assess = new EquinoxPassage().assess(); - if (assess.data().isEmpty()) { - report(assess.diagnostic()); - return; - } - ExaminationCertificate certificate = assess.data().get(); - Optional requirement = new LicensingOperatorRequirement(certificate, operator).get(); - if (requirement.isEmpty()) { - new SignatureData.OperatorLicensingStatus(signature).notRequired(); - return; - } - if (!certificate.satisfied().contains(requirement.get())) { - new SignatureData.OperatorLicensingStatus(signature).insufficient(); - return; - } - new SignatureData.OperatorLicensingStatus(signature).sufficient(); - installParentSignature(signature, certificate.satisfaction(requirement.get()).conditionOrigin()); - } - - private void installParentSignature(Signature signature, ConditionOrigin origin) { - signature.setParent(new EIssuerSignature(origin.signature()).get()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesDomainRegistryTracker.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesDomainRegistryTracker.java deleted file mode 100644 index 9d764f394..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesDomainRegistryTracker.java +++ /dev/null @@ -1,60 +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.licenses.core; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.internal.emf.DomainContentAdapter; - -public class LicensesDomainRegistryTracker extends DomainContentAdapter { - - public LicensesDomainRegistryTracker(LicenseDomainRegistry registry) { - super(registry); - } - - @Override - public void notifyChanged(Notification notification) { - Object notifier = notification.getNotifier(); - if (notifier instanceof LicensePlan) { - LicensePlan licensePlan = (LicensePlan) notifier; - switch (notification.getFeatureID(LicensePlan.class)) { - case LicensesPackage.LICENSE_PLAN__IDENTIFIER: - processLicensePlanIdentifier(licensePlan, notification); - break; - // FIXME: over identifiers - default: - break; - } - } - super.notifyChanged(notification); - } - - protected void processLicensePlanIdentifier(LicensePlan licensePlan, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterLicensePlan(oldValue); - } - if (newValue != null) { - registry.registerLicensePlan(licensePlan); - } - break; - default: - break; - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesSelectionCommandAdvisor.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesSelectionCommandAdvisor.java deleted file mode 100644 index 0c5356404..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensesSelectionCommandAdvisor.java +++ /dev/null @@ -1,60 +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.licenses.core; - -import java.util.Collections; - -import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.emf.SelectionCommandAdvisor; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistry; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; - -@Component(property = { EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME + '=' + LicensesPackage.eNAME }) -public class LicensesSelectionCommandAdvisor implements SelectionCommandAdvisor { - - private LicenseRegistry licenseRegistry; - - @Reference - public void bindDomainRegistry(LicenseRegistry registry) { - this.licenseRegistry = registry; - } - - public void unbindDomainRegistry(LicenseRegistry registry) { - if (this.licenseRegistry == registry) { - this.licenseRegistry = null; - } - } - - @Override - public String getSelectionTitle(String classifier) { - if (LicensesPackage.eINSTANCE.getLicensePlan().getName().equals(classifier)) { - return LicensesCoreMessages.LicensesSelectionCommandAdvisor_select_lic_plan; - } - return null; - } - - @Override - public Iterable getSelectionInput(String classifier) { - if (licenseRegistry == null) { - return Collections.emptyList(); - } - if (LicensesPackage.eINSTANCE.getLicensePlan().getName().equals(classifier)) { - return licenseRegistry.plans(); - } - return Collections.emptyList(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensingOperatorRequirement.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensingOperatorRequirement.java deleted file mode 100644 index ce359bc34..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/LicensingOperatorRequirement.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.internal.licenses.core; - -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.requirements.Requirement; -import org.eclipse.passage.lic.api.restrictions.ExaminationCertificate; -import org.eclipse.passage.lic.api.restrictions.Restriction; - -final class LicensingOperatorRequirement implements Supplier> { - - private final ExaminationCertificate certificate; - private final LicensedProduct operator; - - LicensingOperatorRequirement(ExaminationCertificate certificate, LicensedProduct operator) { - this.certificate = certificate; - this.operator = operator; - } - - @Override - public Optional get() { - return satisfiedOperatorRequirement().or(this::unsatisfiedOperatorRequirement); - } - - private Optional satisfiedOperatorRequirement() { - return certificate.satisfied().stream()// - .filter(this::describesOperator)// - .findAny(); - } - - private Optional unsatisfiedOperatorRequirement() { - return certificate.restrictions().stream()// - .map(Restriction::unsatisfiedRequirement)// - .filter(this::describesOperator)// - .findAny(); - } - - private boolean describesOperator(Requirement requirement) { - return requirement.feature().identifier().equals(operator.identifier()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedDecoded.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedDecoded.java deleted file mode 100644 index 257b78b2a..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedDecoded.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.licenses.core; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.Collections; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; - -final class PersistedDecoded { - - private final Path residence; - private final EObject target; - - PersistedDecoded(Path residence, EObject target) { - this.residence = residence; - this.target = target; - } - - Path write(String file) throws LicensingException { - Path decrypted = residence.resolve(file); - save(decrypted, resource(decrypted)); - return decrypted; - } - - private Resource resource(Path path) { - URI uri = URI.createFileURI(path.toString()); - Resource resource = new ResourceSetImpl().createResource(uri); - resource.getContents().add(target); - return resource; - } - - private void save(Path decrypted, Resource resource) throws LicensingException { - try { - resource.save(Collections.emptyMap()); - } catch (IOException e) { - throw new LicensingException(// - String.format(LicensesCoreMessages.EmfObjectPersisted_failed, target, decrypted), e); - } - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedEncoded.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedEncoded.java deleted file mode 100644 index 3dfbdd95f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersistedEncoded.java +++ /dev/null @@ -1,70 +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.licenses.core; - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Path; -import java.util.Optional; -import java.util.function.Function; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.api.io.StreamCodec; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages; -import org.eclipse.passage.loc.internal.products.core.ProductKeys; - -@SuppressWarnings("restriction") -final class PersistedEncoded { - - private final LicensedProduct product; - private final Path decrypted; - private final Function password; - - PersistedEncoded(LicensedProduct product, Path decrypted, Function password) { - this.product = product; - this.decrypted = decrypted; - this.password = password; - } - - Path write(String file) throws LicensingException { - Path encrypted = decrypted.getParent().resolve(file); - try (FileInputStream input = new FileInputStream(decrypted.toFile()); - FileOutputStream output = new FileOutputStream(encrypted.toFile()); - InputStream key = key()) { - codec().encode(input, output, key, product.identifier(), password.apply(product)); - return encrypted; - } catch (IOException e) { - throw new LicensingException( - String.format(LicensesCoreMessages.LicenseOperatorServiceImpl_floating_save_encoded_file_error, - encrypted.toAbsolutePath()), - e); - } - } - - private InputStream key() throws LicensingException { - return new ProductKeys(product).scrStream(); - } - - private StreamCodec codec() throws LicensingException { - Optional codec = new OperatorGearAware().withGear(gear -> gear.codec(product)); - if (!codec.isPresent()) { - throw new LicensingException( - String.format(LicensesCoreMessages.LicenseOperatorServiceImpl_w_no_encoding, decrypted)); - } - return codec.get(); - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersonalLicensePackFromRequest.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersonalLicensePackFromRequest.java deleted file mode 100644 index d4320b7b9..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/PersonalLicensePackFromRequest.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 - *******************************************************************************/ -package org.eclipse.passage.loc.internal.licenses.core; - -import java.util.Date; -import java.util.function.Supplier; - -import org.eclipse.passage.lic.internal.licenses.model.EmptyPersonalLicensePack; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.LicensePlanFeature; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriod; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed; -import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory; -import org.eclipse.passage.loc.internal.api.PersonalLicenseRequest; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistry; - -final class PersonalLicensePackFromRequest implements Supplier { - - private final PersonalLicenseRequest request; - private final LicenseRegistry licenses; - - PersonalLicensePackFromRequest(PersonalLicenseRequest request, LicenseRegistry licesnses) { - this.request = request; - this.licenses = licesnses; - } - - @Override - public PersonalLicensePack get() { - PersonalLicensePack pack = new EmptyPersonalLicensePack().get(); - installRequisites(pack); - installGrants(pack); - return pack; - } - - private void installRequisites(PersonalLicensePack pack) { - pack.getLicense().setIdentifier(request.identifier()); - pack.getLicense().setIssueDate(new Date()); - pack.getLicense().getUser().setIdentifier(request.user()); - pack.getLicense().getUser().setName(request.userFullName()); - pack.getLicense().getProduct().setIdentifier(request.productIdentifier()); - pack.getLicense().getProduct().setVersion(request.productVersion()); - pack.getLicense().setPlan(request.plan()); - pack.getLicense().setValid(valid()); - } - - private void installGrants(PersonalLicensePack pack) { - LicensePlan plan = licenses.plan(pack.getLicense().getPlan()).get(); - for (LicensePlanFeature feature : plan.getFeatures()) { - pack.getGrants().add(new LicenseGrantFromRequest(feature, request).get()); - } - } - - private ValidityPeriod valid() { - ValidityPeriodClosed valid = LicensesFactory.eINSTANCE.createValidityPeriodClosed(); - valid.setFrom(request.validFrom()); - valid.setUntil(request.validUntil()); - return valid; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ProductPassword.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ProductPassword.java deleted file mode 100644 index 872165aa8..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/ProductPassword.java +++ /dev/null @@ -1,39 +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.internal.licenses.core; - -import java.util.function.Function; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.loc.internal.equinox.OperatorProductService; -import org.eclipse.passage.loc.internal.products.ProductRegistry; - -final class ProductPassword implements Function { - - private final ProductRegistry products; - private final OperatorProductService operator; - - public ProductPassword(ProductRegistry products, OperatorProductService operator) { - this.products = products; - this.operator = operator; - } - - @Override - public String apply(LicensedProduct product) { - return operator.createPassword(// - products.productVersion(// - product.identifier(), // - product.version()).get()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/UpdateLicensePlan.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/UpdateLicensePlan.java deleted file mode 100644 index 8ad43f90b..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/UpdateLicensePlan.java +++ /dev/null @@ -1,87 +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.licenses.core; - -import java.io.IOException; -import java.util.Optional; -import java.util.function.Function; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.edit.command.AddCommand; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.emf.edit.domain.IEditingDomainProvider; -import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; -import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistry; - -final class UpdateLicensePlan { - - private final LicenseRegistry licenses; - private final Optional domain; - - UpdateLicensePlan(LicenseRegistry licenses) { - this.licenses = licenses; - this.domain = (licenses instanceof IEditingDomainProvider) // - ? Optional.of((IEditingDomainProvider) licenses)// - : Optional.empty(); - } - - void withPersonal(PersonalLicensePack license) throws IOException { - updatePlan(// - license, // - lic -> lic.getLicense().getPlan(), // - LicensesPackage.eINSTANCE.getLicensePlan_Personal()); - } - - void withFloating(FloatingLicensePack license) throws IOException { - updatePlan(// - license, // - lic -> lic.getLicense().getPlan(), // - LicensesPackage.eINSTANCE.getLicensePlan_Floating()); - } - - private void updatePlan(T license, Function id, EStructuralFeature ref) - throws IOException { - LicensePlan plan = plan(license, id); - if (domain.isPresent()) { - augmentUndoable(license, ref, plan); - } else { - augmentPlain(license, ref, plan); - } - savePlanResource(plan); - } - - private LicensePlan plan(T license, Function id) { - return licenses.plan(id.apply(license)).get(); - } - - @SuppressWarnings("unchecked") - private void augmentPlain(T license, EStructuralFeature ref, LicensePlan plan) { - ((EList) plan.eGet(ref)).add(license); - } - - private void augmentUndoable(T license, EStructuralFeature ref, LicensePlan plan) { - EditingDomain edit = domain.get().getEditingDomain(); - edit.getCommandStack().execute(AddCommand.create(edit, plan, ref, license)); - } - - private void savePlanResource(LicensePlan plan) throws IOException { - // FIXME: define parameters - plan.eResource().save(null); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.java deleted file mode 100644 index ff05d7ef4..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.java +++ /dev/null @@ -1,32 +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.licenses.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public final class LicenseTroubleCodeMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.licenses.core.i18n.LicenseTroubleCodeMessages"; //$NON-NLS-1$ - - public static String LicenseValidationFailed_explanation; - public static String LicenseIssuingFailed_explanation; - public static String LicenseIssuingIsPartial_explanation; - public static String LicenseAgreementAttachFailed_explanation; - - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, LicenseTroubleCodeMessages.class); - } - - private LicenseTroubleCodeMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.properties b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.properties deleted file mode 100644 index 59d193ea1..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicenseTroubleCodeMessages.properties +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################### -# Copyright (c) 2020, 2021 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 -############################################################################### -LicenseIssuingFailed_explanation=License issuing failed -LicenseValidationFailed_explanation=License information contains unavoidable errors -LicenseIssuingIsPartial_explanation=License issuing is partially completed -LicenseAgreementAttachFailed_explanation=Failed to attach agreement to license pack diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.java deleted file mode 100644 index d45563536..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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: - * Elena Parovyshnaya - initial API and implementation - * ArSysOp - ongoing support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.licenses.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public final class LicensesCoreMessages extends NLS { - - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.licenses.core.i18n.LicensesCoreMessages"; //$NON-NLS-1$ - - public static String EmfObjectPersisted_failed; - public static String LicenseAgreements_e_agreement_not_found; - - public static String LicenseOperatorServiceImpl_error_io; - public static String LicenseOperatorServiceImpl_export_error; - public static String LicenseOperatorServiceImpl_export_success; - public static String LicenseOperatorServiceImpl_failed_to_save_decoded; - public static String LicenseOperatorServiceImpl_status_invalid_licensing_request; - public static String LicenseOperatorServiceImpl_w_no_encoding; - public static String LicensesSelectionCommandAdvisor_select_lic_plan; - public static String LicenseDomain_instance_duplication_message; - public static String LicenseRequest_package_lbl; - public static String LicenseRequest_plan_lbl; - public static String LicenseRequest_request_lbl; - public static String LicenseRequest_product_lbl; - public static String LicenseRequest_product_version_lbl; - public static String LicenseRequest_feature_lbl; - public static String LicenseRequest_condition_expr_lbl; - public static String LicenseRequest_user_lbl; - public static String LicenseRequest_user_name_lbl; - public static String LicenseRequest_issue_date_lbl; - public static String LicenseRequest_mailto_subject_lbl; - public static String LicenseRequest_mailto_appeal_lbl; - public static String LicenseRequest_mailto_body_base_lbl; - public static String LicenseRequest_mailto_body_details_lbl; - public static String LicenseRequest_error_attachment_not_exist; - public static String LicenseOperatorServiceImpl_floating_no_codec; - public static String LicenseOperatorServiceImpl_floating_save_decoded_failed; - public static String LicenseOperatorServiceImpl_floating_save_encoded_failed; - public static String LicenseOperatorServiceImpl_floating_save_product_key; - public static String LicenseOperatorServiceImpl_floating_save_encoded_file_error; - public static String LicenseOperatorServiceImpl_failed_to_find_agreement_file; - public static String LicenseOperatorServiceImpl_failed_to_attach_agreement; - - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, LicensesCoreMessages.class); - } - - private LicensesCoreMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.properties b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.properties deleted file mode 100644 index 55df8e130..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/LicensesCoreMessages.properties +++ /dev/null @@ -1,46 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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: -# Elena Parovyshnaya - initial API and implementation -# ArSysOp - ongoing support -############################################################################### - -EmfObjectPersisted_failed=Failed to persist emf object %s to %s -LicenseAgreements_e_agreement_not_found=Agreement not found for {0} -LicenseOperatorServiceImpl_error_io=Failed on I/O operation -LicenseOperatorServiceImpl_export_error=License Pack export error -LicenseOperatorServiceImpl_export_success=License pack exported successfully: \n\n %s \n -LicenseOperatorServiceImpl_failed_to_find_agreement_file=Content file [%s] for agreement [%s] is not found -LicenseOperatorServiceImpl_failed_to_attach_agreement=Failed to attach agreement [%s] with content [%s] to license -LicenseOperatorServiceImpl_failed_to_save_decoded=Failed on decoded license file saving -LicenseOperatorServiceImpl_status_invalid_licensing_request=Invalid Licensing Request -LicenseOperatorServiceImpl_w_no_encoding=License Pack has been exported without encoding: \n\n %s \n -LicensesSelectionCommandAdvisor_select_lic_plan=Select License Plan -LicenseDomain_instance_duplication_message=Duplication of license instances. The existing instance: \"{0}\" will be replaced by: \"{1}\" -LicenseRequest_package_lbl=Package id: {0} -LicenseRequest_plan_lbl=Plan id: {0} -LicenseRequest_product_lbl=Product id: {0} -LicenseRequest_product_version_lbl=Product version: {0} -LicenseRequest_request_lbl=Request id: {0} -LicenseRequest_feature_lbl=Feature id: {0} -LicenseRequest_condition_expr_lbl=Licensing condition expression: {0} -LicenseRequest_user_lbl=User id(email): {0} -LicenseRequest_user_name_lbl=User name: {0} -LicenseRequest_issue_date_lbl=Expiry date to: {0} -LicenseRequest_mailto_subject_lbl=Passage Licensing Request -LicenseRequest_mailto_appeal_lbl=Dear, {0} -LicenseRequest_mailto_body_base_lbl=Yours request for product licensing was successfully completed, thanks for using Passage Licensing. -LicenseRequest_mailto_body_details_lbl=Licensing details: -LicenseRequest_error_attachment_not_exist=The mail attachment does not exist -LicenseOperatorServiceImpl_floating_no_codec=Failed to issue floating license pack as there is no codec found for the product %s -LicenseOperatorServiceImpl_floating_save_decoded_failed=Failed to persist decoded floating license / access file -LicenseOperatorServiceImpl_floating_save_encoded_failed=Failed to persist encoded floating license / access file -LicenseOperatorServiceImpl_floating_save_product_key=Failed to deliver product public key -LicenseOperatorServiceImpl_floating_save_encoded_file_error=Failed to persist encoded file %s diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.java deleted file mode 100644 index b7ece2755..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.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.licenses.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public class ReductionMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.licenses.core.i18n.ReductionMessages"; //$NON-NLS-1$ - public static String ClosedValidityPeriodReduction_reduction_validityperiod_allowed; - public static String ClosedValidityPeriodReduction_reduction_validityperiod_length; - public static String FeatureGrantCapacityReduction_reduction_featuregrant_capacity; - public static String FeatureGrantCapacityReduction_reduction_featuregrant_feature; - public static String UserGrantsAmountReduction_reduction_usergrant_amount; - public static String UserGrantsAmountReduction_reduction_usergrant_user; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, ReductionMessages.class); - } - - private ReductionMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.properties b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.properties deleted file mode 100644 index 61e50934f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/i18n/ReductionMessages.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 -############################################################################### - -UserGrantsAmountReduction_reduction_usergrant_amount=Available license does not allow to create more than %d user grants -UserGrantsAmountReduction_reduction_usergrant_user=-> user %s has been removed from the license pack -ClosedValidityPeriodReduction_reduction_validityperiod_length=Available license only allows to issue a short-term licenses (not longer than %d month) -ClosedValidityPeriodReduction_reduction_validityperiod_allowed=->validity period (%s, %s) is reduced to (%s, %s) -FeatureGrantCapacityReduction_reduction_featuregrant_capacity=Available license does not allow to issue feature grant more than for %d user simultaneousely -FeatureGrantCapacityReduction_reduction_featuregrant_feature=->feature [%s] grant's capacity is reducted to %d diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/ClosedValidityPeriodReduction.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/ClosedValidityPeriodReduction.java deleted file mode 100644 index ff2a514bf..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/ClosedValidityPeriodReduction.java +++ /dev/null @@ -1,60 +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.licenses.core.issue; - -import java.time.ZonedDateTime; -import java.time.temporal.ChronoUnit; -import java.util.Optional; -import java.util.function.BiConsumer; -import java.util.function.Function; - -import org.eclipse.passage.lic.api.conditions.ValidityPeriodClosed; -import org.eclipse.passage.lic.base.conditions.BaseValidityPeriodClosed; -import org.eclipse.passage.loc.internal.licenses.core.i18n.ReductionMessages; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -final class ClosedValidityPeriodReduction implements Reduction { - - private final Logger log = LoggerFactory.getLogger(getClass()); - private final Function> get; - private final BiConsumer set; - private final int length = 3; - - ClosedValidityPeriodReduction(Function> get, - BiConsumer set) { - this.get = get; - this.set = set; - } - - @Override - public void accept(L license) { - Optional valid = get.apply(license); - if (!valid.isPresent()) { - return; - } - ZonedDateTime allowed = allowed(valid.get().from()); - if (allowed.isBefore(valid.get().to())) { - log.warn(String.format(ReductionMessages.ClosedValidityPeriodReduction_reduction_validityperiod_length, - length)); - log.warn(String.format(ReductionMessages.ClosedValidityPeriodReduction_reduction_validityperiod_allowed, - valid.get().from(), valid.get().to(), valid.get().from(), allowed)); - set.accept(license, new BaseValidityPeriodClosed(valid.get().from(), allowed)); - } - } - - private ZonedDateTime allowed(ZonedDateTime from) { - return from.plus(length, ChronoUnit.MONTHS); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FeatureGrantCapacityReduction.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FeatureGrantCapacityReduction.java deleted file mode 100644 index a12637c77..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FeatureGrantCapacityReduction.java +++ /dev/null @@ -1,37 +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.licenses.core.issue; - -import org.eclipse.passage.lic.licenses.model.api.FeatureGrant; -import org.eclipse.passage.loc.internal.licenses.core.i18n.ReductionMessages; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -final class FeatureGrantCapacityReduction implements Reduction { - - private final Logger log = LoggerFactory.getLogger(getClass()); - private final int capacity = 3; - - @Override - public void accept(FeatureGrant grant) { - if (grant.getCapacity() <= capacity) { - return; - } - log.warn(String.format(ReductionMessages.FeatureGrantCapacityReduction_reduction_featuregrant_capacity, - capacity)); - log.warn(String.format(ReductionMessages.FeatureGrantCapacityReduction_reduction_featuregrant_feature, - grant.getFeature(), capacity)); - grant.setCapacity(capacity); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FloatingLicenseIssuingProtection.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FloatingLicenseIssuingProtection.java deleted file mode 100644 index c76ec22fd..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/FloatingLicenseIssuingProtection.java +++ /dev/null @@ -1,110 +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.licenses.core.issue; - -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.function.Consumer; - -import org.eclipse.passage.lic.base.conditions.BaseValidityPeriodClosed; -import org.eclipse.passage.lic.equinox.EquinoxPassage; -import org.eclipse.passage.lic.licenses.model.api.FeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriod; -import org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed; -import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory; - -@SuppressWarnings("restriction") -public final class FloatingLicenseIssuingProtection implements Consumer { - - private final String feature = "org.eclipse.passage.loc.operator.issue.floating.full"; //$NON-NLS-1$ - private final List> featureReductions; - private final List> licReductions; - - public FloatingLicenseIssuingProtection() { - this.featureReductions = Arrays.asList(// - new ClosedValidityPeriodReduction(this::validGet, this::validSet), // - new FeatureGrantCapacityReduction()// - ); - this.licReductions = Arrays.asList(// - new ClosedValidityPeriodReduction(this::validGet, this::validSet), // - new UserGrantsAmountReduction()// - ); - } - - @Override - public void accept(FloatingLicensePack license) { - if (new EquinoxPassage().canUse(feature)) { - return; - } - diminish(license); - } - - private void diminish(FloatingLicensePack license) { - diminishFeatureGrants(license); - diminishLicense(license); - } - - private void diminishFeatureGrants(FloatingLicensePack license) { - license.getFeatures().forEach(this::diminishGrant); - } - - private void diminishLicense(FloatingLicensePack lic) { - licReductions.forEach(r -> r.accept(lic)); - } - - private void diminishGrant(FeatureGrant grant) { - featureReductions.forEach(r -> r.accept(grant)); - } - - private Optional validGet(FloatingLicensePack lic) { - return validGet(lic.getLicense().getValid()); - } - - private Optional validGet(FeatureGrant grant) { - return validGet(grant.getValid()); - } - - private Optional validGet(ValidityPeriod period) { - if (!(period instanceof ValidityPeriodClosed)) { - return Optional.empty(); // nothing we can reduce for now - } - ValidityPeriodClosed closed = (ValidityPeriodClosed) period; - return Optional.of(new BaseValidityPeriodClosed(date(closed.getFrom()), date(closed.getUntil()))); - } - - private void validSet(FloatingLicensePack lic, org.eclipse.passage.lic.api.conditions.ValidityPeriodClosed period) { - lic.getLicense().setValid(convert(period)); - } - - private void validSet(FeatureGrant grant, org.eclipse.passage.lic.api.conditions.ValidityPeriodClosed period) { - grant.setValid(convert(period)); - } - - private ValidityPeriodClosed convert(org.eclipse.passage.lic.api.conditions.ValidityPeriodClosed period) { - org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed valid = LicensesFactory.eINSTANCE - .createValidityPeriodClosed(); - valid.setFrom(Date.from(period.from().toInstant())); - valid.setUntil(Date.from(period.to().toInstant())); - return valid; - } - - private ZonedDateTime date(Date date) { - return ZonedDateTime.from(date.toInstant().atZone(ZoneId.systemDefault())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/PersonalLicenseIssuingProtection.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/PersonalLicenseIssuingProtection.java deleted file mode 100644 index c6a5a049d..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/PersonalLicenseIssuingProtection.java +++ /dev/null @@ -1,74 +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.licenses.core.issue; - -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.function.Consumer; - -import org.eclipse.passage.lic.api.conditions.ValidityPeriodClosed; -import org.eclipse.passage.lic.base.conditions.BaseValidityPeriodClosed; -import org.eclipse.passage.lic.equinox.EquinoxPassage; -import org.eclipse.passage.lic.licenses.model.api.PersonalFeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; - -@SuppressWarnings("restriction") -public final class PersonalLicenseIssuingProtection implements Consumer { - - private final String feature = "org.eclipse.passage.loc.operator.issue.personal.full"; //$NON-NLS-1$ - private final List> reductions; - - public PersonalLicenseIssuingProtection() { - this.reductions = Arrays.asList(// - new ClosedValidityPeriodReduction(this::validGet, this::validSet)// - ); - } - - @Override - public void accept(PersonalLicensePack license) { - if (new EquinoxPassage().canUse(feature)) { - return; - } - diminish(license); - } - - private void diminish(PersonalLicensePack license) { - license.getGrants().forEach(this::diminishGrant); - } - - private void diminishGrant(PersonalFeatureGrant grant) { - reductions.forEach(r -> r.accept(grant)); - } - - private Optional validGet(PersonalFeatureGrant grant) { - return Optional.of(new BaseValidityPeriodClosed(// - date(((org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed) grant.getValid()).getFrom()), // - date(((org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed) grant.getValid()).getUntil()))); - } - - private void validSet(PersonalFeatureGrant grant, ValidityPeriodClosed period) { - ((org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed) grant.getValid()) - .setFrom(Date.from(period.from().toInstant())); - ((org.eclipse.passage.lic.licenses.model.api.ValidityPeriodClosed) grant.getValid()) - .setUntil(Date.from(period.to().toInstant())); - } - - private ZonedDateTime date(Date date) { - return ZonedDateTime.from(date.toInstant().atZone(ZoneId.systemDefault())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/Reduction.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/Reduction.java deleted file mode 100644 index 69452746f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/Reduction.java +++ /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 - *******************************************************************************/ -package org.eclipse.passage.loc.internal.licenses.core.issue; - -import java.util.function.Consumer; - -interface Reduction extends Consumer { - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/UserGrantsAmountReduction.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/UserGrantsAmountReduction.java deleted file mode 100644 index 5674c7558..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/issue/UserGrantsAmountReduction.java +++ /dev/null @@ -1,40 +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.licenses.core.issue; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack; -import org.eclipse.passage.lic.licenses.model.api.UserGrant; -import org.eclipse.passage.loc.internal.licenses.core.i18n.ReductionMessages; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -final class UserGrantsAmountReduction implements Reduction { - - private final Logger log = LoggerFactory.getLogger(getClass()); - private final int amount = 5; - - @Override - public void accept(FloatingLicensePack license) { - EList users = license.getUsers(); - if (users.size() > amount) { - log.warn(String.format(ReductionMessages.UserGrantsAmountReduction_reduction_usergrant_amount, amount)); - for (int i = users.size() - 1; i >= amount; i--) { - UserGrant victim = users.remove(i); - log.warn(String.format(ReductionMessages.UserGrantsAmountReduction_reduction_usergrant_user, - victim.getUser())); - } - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/FloatingLicenseData.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/FloatingLicenseData.java deleted file mode 100644 index 9f0dd9bc7..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/FloatingLicenseData.java +++ /dev/null @@ -1,70 +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.internal.licenses.core.request; - -import java.time.LocalDate; -import java.util.Collection; -import java.util.Objects; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -import org.eclipse.passage.lic.api.EvaluationInstructions; -import org.eclipse.passage.lic.api.EvaluationType; -import org.eclipse.passage.lic.base.conditions.BaseEvaluationInstructions; -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.api.FloatingLicenseRequest; - -public final class FloatingLicenseData extends GeneralLicenseData implements FloatingLicenseRequest { - - private final Supplier> users; - private final Supplier capacity; - - public FloatingLicenseData(Supplier> users, Supplier plan, - Supplier product, Supplier from, Supplier until, - Supplier capacity) { - super(plan, product, from, until); - Objects.requireNonNull(users, "PersonalLicenseData::users"); //$NON-NLS-1$ - this.users = users; - this.capacity = capacity; - } - - @Override - public Collection users() { - return users.get().stream()// - .map(user -> user.getContact().getEmail()) // - .collect(Collectors.toList()); - } - - @Override - public EvaluationInstructions userAuthentication(String user) { - User target = user(user); - return new BaseEvaluationInstructions(// - new EvaluationType.Of(target.getPreferredEvaluationExpression()), // - target.getPreferredEvaluationType()); - } - - private User user(String identifier) { - return users.get().stream()// - .filter(user -> identifier.equals(user.getContact().getEmail()))// - .findAny()// - .get(); // yah, fail if not found, it's a development problem - } - - @Override - public int defaultCapacity() { - return capacity.get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/GeneralLicenseData.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/GeneralLicenseData.java deleted file mode 100644 index 6ff95bf57..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/GeneralLicenseData.java +++ /dev/null @@ -1,89 +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.internal.licenses.core.request; - -import java.time.LocalDate; -import java.time.ZoneId; -import java.util.Date; -import java.util.Objects; -import java.util.UUID; -import java.util.function.Supplier; - -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.loc.internal.api.GeneralLicenseRequest; - -public abstract class GeneralLicenseData implements GeneralLicenseRequest { - - private final ZoneId zone = ZoneId.systemDefault(); - private final String uuid = UUID.randomUUID().toString(); - private final Date stamp = new Date(); - - private final Supplier plan; - private final Supplier product; - private final Supplier from; - private final Supplier until; - - protected GeneralLicenseData(Supplier plan, Supplier product, Supplier from, - Supplier until) { - noNulls(plan, product, from, until); - this.plan = plan; - this.product = product; - this.from = () -> Date.from(from.get().atStartOfDay(zone).toInstant()); - this.until = () -> Date.from(until.get().atStartOfDay(zone).toInstant()); - } - - private void noNulls(Object planObj, Object productObj, Object fromObj, Object untilObj) { - String cls = getClass().getSimpleName(); - Objects.requireNonNull(planObj, cls + "::plan"); //$NON-NLS-1$ - Objects.requireNonNull(productObj, cls + "::product"); //$NON-NLS-1$ - Objects.requireNonNull(fromObj, cls + "::from"); //$NON-NLS-1$ - Objects.requireNonNull(untilObj, cls + "::until"); //$NON-NLS-1$ - } - - @Override - public final Date validUntil() { - return until.get(); - } - - @Override - public final Date validFrom() { - return from.get(); - } - - @Override - public final String productVersion() { - return product.get().getVersion(); - } - - @Override - public final String productIdentifier() { - return product.get().getProduct().getIdentifier(); - } - - @Override - public final String plan() { - return plan.get().getIdentifier(); - } - - @Override - public final String identifier() { - return uuid; - } - - @Override - public final Date creationDate() { - return stamp; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/PersonalLicenseData.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/PersonalLicenseData.java deleted file mode 100644 index cc4dfdd23..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/internal/licenses/core/request/PersonalLicenseData.java +++ /dev/null @@ -1,53 +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.internal.licenses.core.request; - -import java.time.LocalDate; -import java.util.Objects; -import java.util.function.Supplier; - -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.api.PersonalLicenseRequest; - -public final class PersonalLicenseData extends GeneralLicenseData implements PersonalLicenseRequest { - - private final Supplier user; - - public PersonalLicenseData(Supplier user, Supplier plan, Supplier product, - Supplier from, Supplier until) { - super(plan, product, from, until); - this.user = Objects.requireNonNull(user); - } - - @Override - public String user() { - return user.get().getContact().getEmail(); - } - - @Override - public String userFullName() { - return user.get().getContact().getName(); - } - - @Override - public String conditionType() { - return user.get().getPreferredEvaluationType(); - } - - @Override - public String conditionExpression() { - return user.get().getPreferredEvaluationExpression(); - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseAgreementsAttachFailed.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseAgreementsAttachFailed.java deleted file mode 100644 index 242818e55..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseAgreementsAttachFailed.java +++ /dev/null @@ -1,24 +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.licenses.trouble.code; - -import org.eclipse.passage.lic.api.diagnostic.TroubleCode; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicenseTroubleCodeMessages; - -public final class LicenseAgreementsAttachFailed extends TroubleCode { - - public LicenseAgreementsAttachFailed() { - super(903, LicenseTroubleCodeMessages.LicenseAgreementAttachFailed_explanation); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingFailed.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingFailed.java deleted file mode 100644 index 6b0554acf..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingFailed.java +++ /dev/null @@ -1,24 +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.licenses.trouble.code; - -import org.eclipse.passage.lic.api.diagnostic.TroubleCode; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicenseTroubleCodeMessages; - -public final class LicenseIssuingFailed extends TroubleCode { - - public LicenseIssuingFailed() { - super(900, LicenseTroubleCodeMessages.LicenseIssuingFailed_explanation); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingIsPartial.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingIsPartial.java deleted file mode 100644 index 12cefb6fd..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseIssuingIsPartial.java +++ /dev/null @@ -1,24 +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.licenses.trouble.code; - -import org.eclipse.passage.lic.api.diagnostic.TroubleCode; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicenseTroubleCodeMessages; - -public final class LicenseIssuingIsPartial extends TroubleCode { - - public LicenseIssuingIsPartial() { - super(902, LicenseTroubleCodeMessages.LicenseIssuingIsPartial_explanation); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseValidationFailed.java b/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseValidationFailed.java deleted file mode 100644 index f22ab0108..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.core/src/org/eclipse/passage/loc/licenses/trouble/code/LicenseValidationFailed.java +++ /dev/null @@ -1,24 +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.licenses.trouble.code; - -import org.eclipse.passage.lic.api.diagnostic.TroubleCode; -import org.eclipse.passage.loc.internal.licenses.core.i18n.LicenseTroubleCodeMessages; - -public final class LicenseValidationFailed extends TroubleCode { - - public LicenseValidationFailed() { - super(901, LicenseTroubleCodeMessages.LicenseValidationFailed_explanation); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/.classpath b/bundles/org.eclipse.passage.loc.licenses.emfforms/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/.project b/bundles/org.eclipse.passage.loc.licenses.emfforms/.project deleted file mode 100644 index 16a2464f8..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.licenses.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.licenses.emfforms/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.licenses.emfforms/META-INF/MANIFEST.MF deleted file mode 100644 index c51784c3f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,45 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.licenses.emfforms -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.licenses.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;bundle-version="0.0.0", - org.eclipse.emf.ecp.edit.swt;bundle-version="0.0.0", - org.eclipse.emf.ecp.ui.view;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.context;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.core.swt;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.model;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.model.common;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.template.model;bundle-version="0.0.0", - org.eclipse.emf.edit.ui;bundle-version="0.0.0", - org.eclipse.emfforms.core.services;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core.di;bundle-version="0.0.0", - org.eclipse.emfforms.swt.treemasterdetail;bundle-version="0.0.0", - org.eclipse.equinox.common;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.licenses.model;bundle-version="0.0.0", - org.eclipse.passage.lic.products.model;bundle-version="0.0.0", - org.eclipse.passage.loc.features.emfforms;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.emfforms;bundle-version="0.0.0", - org.eclipse.passage.loc.workbench.emfforms;bundle-version="0.0.0" -Service-Component: OSGI-INF/*.xml -Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.passage.loc.licenses.emfforms.parts;x-internal:=true, - org.eclipse.passage.loc.licenses.emfforms.renderers;x-internal:=true -Import-Package: javax.inject - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index ac1264a8f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/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 Licenses EMF Forms -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.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.BaseTextRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.BaseTextRendererService.xml deleted file mode 100644 index c76dc7aaa..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.BaseTextRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionExpressionRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionExpressionRendererService.xml deleted file mode 100644 index c6eeb7818..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionExpressionRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionTypeRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionTypeRendererService.xml deleted file mode 100644 index b88ed6e4a..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ConditionTypeRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.FeatureIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.FeatureIdentifierRendererService.xml deleted file mode 100644 index 66638021f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.FeatureIdentifierRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.MatchRuleRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.MatchRuleRendererService.xml deleted file mode 100644 index 50e607110..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.MatchRuleRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductIdentifierRendererService.xml deleted file mode 100644 index 71432d2e8..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductIdentifierRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductVersionRendererService.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductVersionRendererService.xml deleted file mode 100644 index b73cc8706..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/OSGI-INF/org.eclipse.passage.loc.licenses.emfforms.renderers.ProductVersionRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/about.html b/bundles/org.eclipse.passage.loc.licenses.emfforms/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.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.licenses.emfforms/build.properties b/bundles/org.eclipse.passage.loc.licenses.emfforms/build.properties deleted file mode 100644 index d6b5e01ce..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/build.properties +++ /dev/null @@ -1,22 +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/,\ - .,\ - plugin.xml,\ - OSGI-INF/,\ - viewmodels/,\ - fragment.e4xmi,\ - about.html diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/fragment.e4xmi b/bundles/org.eclipse.passage.loc.licenses.emfforms/fragment.e4xmi deleted file mode 100644 index fe3a8d452..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/fragment.e4xmi +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/plugin.xml b/bundles/org.eclipse.passage.loc.licenses.emfforms/plugin.xml deleted file mode 100644 index 845e8ef41..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/plugin.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensePlanContentProvider.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensePlanContentProvider.java deleted file mode 100644 index ea80ae642..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensePlanContentProvider.java +++ /dev/null @@ -1,61 +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.licenses.emfforms.parts; - -import org.eclipse.emf.edit.provider.ComposedAdapterFactory; -import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.passage.lic.licenses.model.api.FloatingLicensePack; -import org.eclipse.passage.lic.licenses.model.api.LicensePlanFeature; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; - -public final class LicensePlanContentProvider implements ITreeContentProvider { - - private final Object[] nobody = new Object[0]; - private final AdapterFactoryContentProvider delegate; - - public LicensePlanContentProvider() { - delegate = new AdapterFactoryContentProvider( - new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE)); - } - - @Override - public Object[] getElements(Object inputElement) { - return getChildren(inputElement); - } - - @Override - public Object[] getChildren(Object parent) { - if (parent instanceof LicensePlanFeature) { - return nobody; - } - if (parent instanceof FloatingLicensePack) { - return nobody; - } - if (parent instanceof PersonalLicensePack) { - return nobody; - } - return delegate.getChildren(parent); - } - - @Override - public Object getParent(Object element) { - return delegate.getParent(element); - } - - @Override - public boolean hasChildren(Object element) { - return getChildren(element).length > 0; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesCreateElementCallback.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesCreateElementCallback.java deleted file mode 100644 index 88412c1d6..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesCreateElementCallback.java +++ /dev/null @@ -1,41 +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.licenses.emfforms.parts; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback; -import org.eclipse.passage.lic.licenses.model.api.LicensePlanFeature; -import org.eclipse.passage.lic.licenses.model.meta.LicensesFactory; - -public class LicensesCreateElementCallback implements CreateElementCallback { - - @Override - public void initElement(EObject parent, EReference reference, EObject newObject) { - if (newObject instanceof LicensePlanFeature) { - LicensePlanFeature lpf = (LicensePlanFeature) newObject; - lpf.setFeature(LicensesFactory.eINSTANCE.createFeatureRef()); - lpf.getFeature().setVersionMatch(LicensesFactory.eINSTANCE.createVersionMatch()); - } - } - - @Override - public boolean beforeCreateElement(Object newElement) { - return true; - } - - @Override - public void afterCreateElement(Object newElement) { - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesDetailsPart.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesDetailsPart.java deleted file mode 100644 index 456a2d1b2..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/parts/LicensesDetailsPart.java +++ /dev/null @@ -1,60 +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.licenses.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.jface.viewers.IStructuredContentProvider; -import org.eclipse.passage.lic.licenses.model.api.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; -import org.eclipse.passage.loc.internal.licenses.LicenseRegistryEvents; -import org.eclipse.passage.loc.workbench.emfforms.parts.DetailsView; - -public class LicensesDetailsPart extends DetailsView { - - @Inject - public LicensesDetailsPart(MPart part, ESelectionService selectionService) { - super(part, selectionService); - } - - @Inject - @Optional - public void showLicensePlan(@UIEventTopic(LicenseRegistryEvents.LICENSE_PLAN_CREATE) LicensePlan input, - IEclipseContext context) { - show(input, context); - } - - @Inject - @Optional - public void showLicensePack(@UIEventTopic(LicenseRegistryEvents.LICENSE_PACK_CREATE) PersonalLicensePack input, - IEclipseContext context) { - show(input, context); - } - - @Override - protected CreateElementCallback getCreateElementCallback() { - return new LicensesCreateElementCallback(); - } - - @Override - protected java.util.Optional customizedContentProvider() { - return java.util.Optional.of(new LicensePlanContentProvider()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/BaseTextRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/BaseTextRendererService.java deleted file mode 100644 index 9103403ab..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/BaseTextRendererService.java +++ /dev/null @@ -1,99 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.licenses.emfforms.renderers; - -import org.eclipse.core.databinding.property.value.IValueProperty; -import org.eclipse.emf.ecore.EStructuralFeature; -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.model.VElement; -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.swt.core.AbstractSWTRenderer; -import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService; -import org.eclipse.passage.lic.features.model.meta.FeaturesPackage; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -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 final class BaseTextRendererService implements EMFFormsDIRendererService { - - private EMFFormsDatabinding databinding; - private ReportService report; - - @Reference - public void bindEMFFormsDatabinding(EMFFormsDatabinding service) { - this.databinding = service; - } - - public void unbindEMFFormsDatabinding(EMFFormsDatabinding service) { - if (this.databinding == service) { - this.databinding = null; - } - } - - @Reference - public void bindReportService(ReportService service) { - this.report = service; - } - - public void unbindReportService(ReportService service) { - if (this.report == service) { - this.report = null; - } - } - - @Override - public double isApplicable(VElement vElement, ViewModelContext viewModelContext) { - if (!VControl.class.isInstance(vElement)) { - return NOT_APPLICABLE; - } - final VControl control = (VControl) vElement; - if (control.getDomainModelReference() == null) { - return NOT_APPLICABLE; - } - - @SuppressWarnings("rawtypes") - IValueProperty valueProperty; - try { - valueProperty = databinding.getValueProperty(control.getDomainModelReference(), - viewModelContext.getDomainModel()); - } catch (final DatabindingFailedException ex) { - report.report(new DatabindingFailedReport(ex)); - return NOT_APPLICABLE; - } - Object valueType = valueProperty.getValueType(); - final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueType); - - if (FeaturesPackage.eINSTANCE.getFeatureVersion_Version().equals(eStructuralFeature) - || ProductsPackage.eINSTANCE.getProductLine_Identifier().equals(eStructuralFeature) - || ProductsPackage.eINSTANCE.getProduct_Identifier().equals(eStructuralFeature) - || ProductsPackage.eINSTANCE.getProduct_Name().equals(eStructuralFeature) - || ProductsPackage.eINSTANCE.getProductVersion_Version().equals(eStructuralFeature)) { - return 9; - } - - return NOT_APPLICABLE; - } - - @Override - public Class> getRendererClass() { - return ValidatedTextRenderer.class; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionExpressionRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionExpressionRendererService.java deleted file mode 100644 index 3665fc013..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionExpressionRendererService.java +++ /dev/null @@ -1,56 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.licenses.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.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.workbench.emfforms.renderers.ConditionExpressionRenderer; -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 final class ConditionExpressionRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public ConditionExpressionRendererService() { - super(ConditionExpressionRenderer.class, LicensesPackage.eINSTANCE.getEvaluationInstructions_Expression()); - } - - @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.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionTypeRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionTypeRendererService.java deleted file mode 100644 index 418986232..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ConditionTypeRendererService.java +++ /dev/null @@ -1,56 +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.licenses.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.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.workbench.emfforms.renderers.ConditionTypeRenderer; -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 ConditionTypeRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public ConditionTypeRendererService() { - super(ConditionTypeRenderer.class, // - LicensesPackage.eINSTANCE.getEvaluationInstructions_Type()); - } - - @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.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/FeatureIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/FeatureIdentifierRendererService.java deleted file mode 100644 index 267189e6b..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/FeatureIdentifierRendererService.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.loc.licenses.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.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.features.emfforms.renderers.FeatureIdentifierRenderer; -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 FeatureIdentifierRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public FeatureIdentifierRendererService() { - super(FeatureIdentifierRenderer.class, LicensesPackage.eINSTANCE.getFeatureRef_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.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/MatchRuleRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/MatchRuleRendererService.java deleted file mode 100644 index c2049c4cb..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/MatchRuleRendererService.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.loc.licenses.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.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.workbench.emfforms.renderers.MatchRuleRenderer; -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 MatchRuleRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public MatchRuleRendererService() { - super(MatchRuleRenderer.class, LicensesPackage.eINSTANCE.getVersionMatch_Rule()); - } - - @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.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductIdentifierRendererService.java deleted file mode 100644 index 485632581..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductIdentifierRendererService.java +++ /dev/null @@ -1,56 +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.licenses.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.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.products.emfforms.renderers.ProductIdentifierRenderer; -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 ProductIdentifierRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public ProductIdentifierRendererService() { - super(ProductIdentifierRenderer.class, // - LicensesPackage.eINSTANCE.getProductRef_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.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductVersionRendererService.java b/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductVersionRendererService.java deleted file mode 100644 index 10997691d..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/src/org/eclipse/passage/loc/licenses/emfforms/renderers/ProductVersionRendererService.java +++ /dev/null @@ -1,56 +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.licenses.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.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.products.emfforms.renderers.ProductVersionRenderer; -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 ProductVersionRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public ProductVersionRendererService() { - super(ProductVersionRenderer.class, // - LicensesPackage.eINSTANCE.getProductRef_Version()); - } - - @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.licenses.emfforms/viewmodels/AgreementData.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/AgreementData.view deleted file mode 100644 index a7e75cadb..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/AgreementData.view +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/EvaluationInstructions.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/EvaluationInstructions.view deleted file mode 100644 index 5a55a315d..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/EvaluationInstructions.view +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FeatureGrant.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FeatureGrant.view deleted file mode 100644 index c136ad5c3..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FeatureGrant.view +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseAccess.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseAccess.view deleted file mode 100644 index 626604859..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseAccess.view +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicensePack.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicensePack.view deleted file mode 100644 index c25fce821..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicensePack.view +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseRequisites.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseRequisites.view deleted file mode 100644 index b4b889b43..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingLicenseRequisites.view +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServer.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServer.view deleted file mode 100644 index 27d812022..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServer.view +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServerConnection.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServerConnection.view deleted file mode 100644 index 3a851a6ed..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/FloatingServerConnection.view +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlan.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlan.view deleted file mode 100644 index 4e11846b6..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlan.view +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlanFeature.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlanFeature.view deleted file mode 100644 index 847f5fa74..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/LicensePlanFeature.view +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalFeatureGrant.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalFeatureGrant.view deleted file mode 100644 index 07e6f9322..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalFeatureGrant.view +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalLicensePack.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalLicensePack.view deleted file mode 100644 index d450ef8da..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/PersonalLicensePack.view +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ProductRef.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ProductRef.view deleted file mode 100644 index 976da1d93..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ProductRef.view +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/UserGrant.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/UserGrant.view deleted file mode 100644 index 61134fb6b..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/UserGrant.view +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ValidityPeriodClosed.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ValidityPeriodClosed.view deleted file mode 100644 index 30112bbfc..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/ValidityPeriodClosed.view +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/VersionMatch.view b/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/VersionMatch.view deleted file mode 100644 index 09e5838cb..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.emfforms/viewmodels/VersionMatch.view +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - /org.eclipse.passage.lic.licenses.ecore/model/licenses.ecore - diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/.classpath b/bundles/org.eclipse.passage.loc.licenses.ui/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/.gitignore b/bundles/org.eclipse.passage.loc.licenses.ui/.gitignore deleted file mode 100644 index 1df95408f..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/**/*.pub diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/.project b/bundles/org.eclipse.passage.loc.licenses.ui/.project deleted file mode 100644 index f90d917e9..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.licenses.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.licenses.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.licenses.ui/META-INF/MANIFEST.MF deleted file mode 100644 index b66c894b1..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,32 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.licenses.ui -Bundle-ManifestVersion: 2 -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-SymbolicName: org.eclipse.passage.loc.licenses.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;bundle-version="0.0.0", - org.eclipse.e4.core.di.annotations;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.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.licenses.e4.ui;bundle-version="0.0.0", - org.eclipse.passage.lic.licenses.model;bundle-version="0.0.0", - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.licenses.core;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;bundle-version="0.0.0" -Import-Package: javax.inject;version="1.0.0" -Export-Package: org.eclipse.passage.loc.internal.licenses.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui", - org.eclipse.passage.loc.licenses.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui" -Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.licenses.ui/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index e5aa31d8d..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.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 Licenses 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.loc.licenses.ui/about.html b/bundles/org.eclipse.passage.loc.licenses.ui/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.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.licenses.ui/build.properties b/bundles/org.eclipse.passage.loc.licenses.ui/build.properties deleted file mode 100644 index 7b85e406b..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/build.properties +++ /dev/null @@ -1,22 +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.licenses.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.licenses.ui/fragment.e4xmi deleted file mode 100644 index 9e246f204..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/fragment.e4xmi +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FORCE_TEXT - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/plugin.xml b/bundles/org.eclipse.passage.loc.licenses.ui/plugin.xml deleted file mode 100644 index e932780e1..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/plugin.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/SelectLicensePlan.java b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/SelectLicensePlan.java deleted file mode 100644 index ebc191a14..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/SelectLicensePlan.java +++ /dev/null @@ -1,67 +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.internal.licenses.ui; - -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -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.loc.internal.licenses.LicenseRegistry; -import org.eclipse.passage.loc.internal.licenses.ui.i18n.LicensesUiMessages; -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 LicensePlanDescriptor} from the - * given {@link MandatoryService}. - * - * @since 0.6 - * - */ -public final class SelectLicensePlan extends SupplySelectRequest { - - public SelectLicensePlan(MandatoryService context) { - this(context, Optional.empty()); - } - - public SelectLicensePlan(MandatoryService context, Optional selection) { - super(context, selection); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(LicensePlan.class, domain(), input(), () -> initial, appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(LicenseRegistry.class).plans().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(LicensesUiMessages.LicensesUi_select_license_plan, // - () -> LicensingImages.getImage(LicensesPackage.eINSTANCE.getLicensePlan().getName()), labels()); - } - - private String domain() { - return LicensesPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/CreateLicensePlanHandler.java b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/CreateLicensePlanHandler.java deleted file mode 100644 index eb9e0d151..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/CreateLicensePlanHandler.java +++ /dev/null @@ -1,30 +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.licenses.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.licenses.ui.LicensesUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class CreateLicensePlanHandler { - - @Execute - public void execute(IEclipseContext context) { - String domain = LicensesPackage.eNAME; - String perspectiveId = LicensesUi.PERSPECTIVE_MAIN; - LocWokbench.createDomainResource(context, domain, perspectiveId); - } - -} diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/LicenseExportHandler.java b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/LicenseExportHandler.java deleted file mode 100644 index 6c939af4c..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/LicenseExportHandler.java +++ /dev/null @@ -1,128 +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.licenses.ui.handlers; - -import java.time.LocalDate; -import java.time.LocalDateTime; - -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.core.services.events.IEventBroker; -import org.eclipse.e4.ui.services.IServiceConstants; -import org.eclipse.jface.dialogs.IInputValidator; -import org.eclipse.jface.dialogs.InputDialog; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.window.Window; -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.LicensePlan; -import org.eclipse.passage.lic.licenses.model.api.PersonalLicensePack; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.loc.internal.api.IssuedLicense; -import org.eclipse.passage.loc.internal.api.OperatorLicenseService; -import org.eclipse.passage.loc.internal.api.PersonalLicenseRequest; -import org.eclipse.passage.loc.internal.licenses.core.request.PersonalLicenseData; -import org.eclipse.passage.loc.internal.licenses.ui.i18n.LicensesUiMessages; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.users.ui.SelectUser; -import org.eclipse.passage.loc.internal.users.ui.SelectUserOrigin; -import org.eclipse.passage.loc.internal.workbench.MandatoryEclipseContext; -import org.eclipse.passage.loc.internal.workbench.SelectInner; -import org.eclipse.passage.loc.products.ui.ProductsUi; -import org.eclipse.passage.loc.users.ui.UsersUi; -import org.eclipse.passage.loc.workbench.LocWokbench; -import org.eclipse.swt.widgets.Shell; - -//FIXME: should be moved to reduce dependencies -public class LicenseExportHandler { - - @Execute - public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) LicensePlan plan, IEclipseContext context) { - Shell shell = context.get(Shell.class); - MandatoryEclipseContext resolution = new MandatoryEclipseContext(context); - java.util.Optional user = new SelectInner(new SelectUser(resolution).get(), - new SelectUserOrigin(resolution).get(), resolution).get(); - if (!user.isPresent()) { - return; - } - ProductVersion productVersion = ProductsUi.selectProductVersion(shell, context.get(ProductRegistry.class)); - if (productVersion == null) { - return; - } - long months = 12; - InputDialog durationDialog = new InputDialog(shell, LicensesUiMessages.LicenseExportHandler_period_title, - LicensesUiMessages.LicenseExportHandler_period_message, String.valueOf(months), new IInputValidator() { - @Override - public String isValid(String newText) { - String invalidInput = LicensesUiMessages.LicenseExportHandler_e_period_invalid; - try { - long parsed = Long.parseLong(newText); - if (parsed <= 0) { - return invalidInput; - } - } catch (Exception e) { - return invalidInput; - } - return null; - } - }); - if (durationDialog.open() != Window.OK) { - return; - } - months = Long.parseLong(durationDialog.getValue()); - LocalDateTime fromLocal = LocalDateTime.now(); - LocalDateTime untilLocal = fromLocal.plusMonths(months); - - PersonalLicenseRequest request = createLicensingRequest(user.get(), plan, productVersion, - fromLocal.toLocalDate(), untilLocal.toLocalDate()); - - ServiceInvocationResult result = context.get(OperatorLicenseService.class) - .issueLicensePack(context.get(OperatorLicenseService.class).createLicensePack(request)); - if (new NoSevereErrors().test(result.diagnostic()) && result.data().isPresent()) { - MessageDialog.openInformation(shell, LicensesUiMessages.LicenseExportHandler_success_title, - String.format(LicensesUiMessages.LicenseExportHandler_success_description, // - result.data().get().encrypted().toAbsolutePath().toString(), // - result.data().get().decrypted().toAbsolutePath().toString())); - PersonalLicensePack userLicense = result.data().get().license(); - String perspectiveId = UsersUi.PERSPECTIVE_MAIN; - LocWokbench.switchPerspective(context, perspectiveId); - IEventBroker broker = context.get(IEventBroker.class); - broker.post(LocWokbench.TOPIC_SHOW, userLicense); - } else { - new DiagnosticDialog(shell, result.diagnostic()).open(); - } - } - - @CanExecute - public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) @Optional LicensePlan licensePlan, - IEclipseContext context) { - OperatorLicenseService licenseService = context.get(OperatorLicenseService.class); - if (licenseService == null) { - return false; - } - return licensePlan != null; - } - - private PersonalLicenseRequest createLicensingRequest(User user, LicensePlan plan, ProductVersion product, - LocalDate from, LocalDate until) { - return new PersonalLicenseData(() -> user, () -> plan, () -> product, () -> from, () -> until); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/OpenLicensePlanHandler.java b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/OpenLicensePlanHandler.java deleted file mode 100644 index 28738dab7..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/handlers/OpenLicensePlanHandler.java +++ /dev/null @@ -1,30 +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.licenses.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.licenses.model.meta.LicensesPackage; -import org.eclipse.passage.loc.licenses.ui.LicensesUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class OpenLicensePlanHandler { - - @Execute - public void execute(IEclipseContext eclipseContext) { - String domain = LicensesPackage.eNAME; - String perspectiveId = LicensesUi.PERSPECTIVE_MAIN; - LocWokbench.loadDomainResource(eclipseContext, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.java b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.java deleted file mode 100644 index f377d7a46..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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: - * Elena Parovyshnaya - initial API and implementation - * ArSysOp - ongoing support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.licenses.ui.i18n; - -import org.eclipse.osgi.util.NLS; - -public class LicensesUiMessages extends NLS { - - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.licenses.ui.i18n.LicensesUiMessages"; //$NON-NLS-1$ - - public static String LicenseExportHandler_e_period_invalid; - public static String LicenseExportHandler_error_message; - public static String LicenseExportHandler_error_title; - public static String LicenseExportHandler_period_message; - public static String LicenseExportHandler_period_title; - public static String LicenseExportHandler_success_title; - public static String LicenseExportHandler_success_description; - public static String LicensesUi_select_license_plan; - public static String IssuedLicensesReportHandler_unavailableTitle; - public static String IssuedLicensesReportHandler_unavailableMessage; - - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, LicensesUiMessages.class); - } - - private LicensesUiMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.properties b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.properties deleted file mode 100644 index 4028af228..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/internal/licenses/ui/i18n/LicensesUiMessages.properties +++ /dev/null @@ -1,26 +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: -# Elena Parovyshnaya - initial API and implementation -# ArSysOp - ongoing support -############################################################################### - -LicenseExportHandler_e_period_invalid=The amount should be a positive number -LicenseExportHandler_error_message=Error during license pack export -LicenseExportHandler_error_title=Error -LicenseExportHandler_period_message=Please specify license period in months -LicenseExportHandler_period_title=License Period -LicenseExportHandler_success_title=License Pack Issued -LicenseExportHandler_success_description=License files are: \r\n%s\r\n %s -LicensesUi_select_license_plan=Select License Plan - -IssuedLicensesReportHandler_unavailableTitle=Export is unavailable -IssuedLicensesReportHandler_unavailableMessage=Severe configuration error: no implementation for {0} service found - diff --git a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/licenses/ui/LicensesUi.java b/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/licenses/ui/LicensesUi.java deleted file mode 100644 index 28eb9f98a..000000000 --- a/bundles/org.eclipse.passage.loc.licenses.ui/src/org/eclipse/passage/loc/licenses/ui/LicensesUi.java +++ /dev/null @@ -1,21 +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.licenses.ui; - -public class LicensesUi { - - public static final String BUNDLE_SYMBOLIC_NAME = "org.eclipse.passage.loc.licenses.ui"; //$NON-NLS-1$ - - public static final String PERSPECTIVE_MAIN = BUNDLE_SYMBOLIC_NAME + '.' + "perspective.main"; //$NON-NLS-1$ - -} diff --git a/bundles/org.eclipse.passage.loc.operator.gear/.classpath b/bundles/org.eclipse.passage.loc.operator.gear/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.gear/.project b/bundles/org.eclipse.passage.loc.operator.gear/.project deleted file mode 100644 index 9dba90b32..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.operator.gear - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - org.eclipse.pde.api.tools.apiAnalysisBuilder - - - - - org.eclipse.pde.ds.core.builder - - - - - - 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.operator.gear/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.operator.gear/META-INF/MANIFEST.MF deleted file mode 100644 index e2c361c07..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.operator.gear -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.operator.gear;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.passage.lic.api;bundle-version="0.0.0", - org.eclipse.passage.lic.base;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.bc;bundle-version="0.0.0", - org.eclipse.passage.lic.oshi;bundle-version="0.0.0", - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.workspace;bundle-version="0.0.0" -Service-Component: OSGI-INF/*.xml -Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 95c9da652..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,24 +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 -############################################################################### -#Properties file for org.eclipse.passage.loc.operator.gear - -Bundle-Name = Passage LOC OperatorGear -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.operator.gear/OSGI-INF/org.eclipse.passage.loc.operator.internal.gear.OperatorGearAvailable.xml b/bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/org.eclipse.passage.loc.operator.internal.gear.OperatorGearAvailable.xml deleted file mode 100644 index 9d62333b9..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/OSGI-INF/org.eclipse.passage.loc.operator.internal.gear.OperatorGearAvailable.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator.gear/about.html b/bundles/org.eclipse.passage.loc.operator.gear/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/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.operator.gear/build.properties b/bundles/org.eclipse.passage.loc.operator.gear/build.properties deleted file mode 100644 index 6f36dd4c0..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2021 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.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/DefaultGear.java b/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/DefaultGear.java deleted file mode 100644 index 747289678..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/DefaultGear.java +++ /dev/null @@ -1,84 +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.operator.internal.gear; - -import java.util.Arrays; -import java.util.Objects; -import java.util.Optional; - -import org.eclipse.passage.lic.api.EvaluationType; -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.inspection.RuntimeEnvironment; -import org.eclipse.passage.lic.api.inspection.RuntimeEnvironmentRegistry; -import org.eclipse.passage.lic.api.io.Hashes; -import org.eclipse.passage.lic.api.io.HashesRegistry; -import org.eclipse.passage.lic.api.io.StreamCodec; -import org.eclipse.passage.lic.api.registry.Registry; -import org.eclipse.passage.lic.api.registry.StringServiceId; -import org.eclipse.passage.lic.base.io.MD5Hashes; -import org.eclipse.passage.lic.base.registry.ReadOnlyRegistry; -import org.eclipse.passage.lic.bc.BcStreamCodec; -import org.eclipse.passage.lic.oshi.HardwareEnvironment; -import org.eclipse.passage.loc.internal.api.EditingDomainSource; -import org.eclipse.passage.loc.internal.api.OperatorGear; -import org.eclipse.passage.loc.internal.api.workspace.OperatorWorkspace; -import org.eclipse.passage.loc.operator.internal.gear.services.PassageEditingDomainSource; -import org.eclipse.passage.loc.workspace.CollectiveWorkspace; - -@SuppressWarnings("restriction") -final class DefaultGear implements OperatorGear { - - final static DefaultGear gear = new DefaultGear(); - - private final Registry environments; - private final Registry hashes; - private final OperatorWorkspace workspace; - private final EditingDomainSource editing; - - private DefaultGear() { - this.environments = new ReadOnlyRegistry<>(Arrays.asList(// - new HardwareEnvironment() // - )); - this.hashes = new ReadOnlyRegistry<>(new MD5Hashes()); - this.workspace = new CollectiveWorkspace(); - this.editing = new PassageEditingDomainSource(); - } - - @Override - public Optional codec(LicensedProduct product) { - Objects.requireNonNull(product, "DefaultGear::codec -> product"); //$NON-NLS-1$ - return Optional.of(new BcStreamCodec(() -> product)); - } - - @Override - public RuntimeEnvironmentRegistry environments() { - return () -> environments; - } - - @Override - public OperatorWorkspace workspace() { - return workspace; - } - - @Override - public HashesRegistry hashes() { - return () -> hashes; - } - - @Override - public EditingDomainSource editingDomainSource() { - return editing; - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/OperatorGearAvailable.java b/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/OperatorGearAvailable.java deleted file mode 100644 index 44fdf7ed2..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/OperatorGearAvailable.java +++ /dev/null @@ -1,28 +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.operator.internal.gear; - -import org.eclipse.passage.loc.internal.api.OperatorGear; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -import org.osgi.service.component.annotations.Component; - -@Component -public final class OperatorGearAvailable implements OperatorGearSupplier { - - @Override - public OperatorGear get() { - return DefaultGear.gear; - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/services/PassageEditingDomainSource.java b/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/services/PassageEditingDomainSource.java deleted file mode 100644 index c1979e46c..000000000 --- a/bundles/org.eclipse.passage.loc.operator.gear/src/org/eclipse/passage/loc/operator/internal/gear/services/PassageEditingDomainSource.java +++ /dev/null @@ -1,34 +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.operator.internal.gear.services; - -import java.util.HashMap; - -import org.eclipse.emf.common.command.BasicCommandStack; -import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.emf.edit.provider.ComposedAdapterFactory; -import org.eclipse.passage.loc.internal.api.EditingDomainSource; - -public final class PassageEditingDomainSource implements EditingDomainSource { - - @Override - public EditingDomain create() { - return new AdapterFactoryEditingDomain( - new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE), // - new BasicCommandStack(), // - new HashMap<>()// - ); - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.intro/.classpath b/bundles/org.eclipse.passage.loc.operator.intro/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.intro/.project b/bundles/org.eclipse.passage.loc.operator.intro/.project deleted file mode 100644 index 2e83cc93b..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/.project +++ /dev/null @@ -1,35 +0,0 @@ - - - org.eclipse.passage.loc.operator.intro - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - - - .settings - 2 - $%7BPARENT-2-PROJECT_LOC%7D/.settings - - - diff --git a/bundles/org.eclipse.passage.loc.operator.intro/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.operator.intro/META-INF/MANIFEST.MF deleted file mode 100644 index a097efe3c..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/META-INF/MANIFEST.MF +++ /dev/null @@ -1,12 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.operator.intro -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.operator.intro;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.ui;bundle-version="0.0.0", - org.eclipse.ui.intro;bundle-version="0.0.0" -Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.loc.operator.intro/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.operator.intro/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 6c0c1cebb..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/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 Workbench Intro -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.operator.intro/about.html b/bundles/org.eclipse.passage.loc.operator.intro/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/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.operator.intro/build.properties b/bundles/org.eclipse.passage.loc.operator.intro/build.properties deleted file mode 100644 index 23dda431e..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/build.properties +++ /dev/null @@ -1,20 +0,0 @@ -############################################################################### -# Copyright (c) 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 = plugin.xml,\ - META-INF/,\ - .,\ - content/,\ - introContent.xml,\ - OSGI-INF/ diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/help.xhtml b/bundles/org.eclipse.passage.loc.operator.intro/content/help.xhtml deleted file mode 100644 index f953395b0..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/content/help.xhtml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - help.xhtml - - - - - -
-

Quick Start Guide

-
- -

Features

-

- The Feature corresponds to the scenario for your product, that you want to restrict. For example, you may - want to restrict export to some proprietary format or other actions. You do not need to describe all the - functionality of your Product, but only the parts you want to restrict. The identifier attribute of - the Feature is important for the licensing configuration. -

-

Feature Sets

-

- The Feature Set groups the related functionality that may be distributed via several Products. -

-

Feature Version

-

- The Feature Version is a state of your Feature that included to the Product Version. The - version attribute - of the Feature Version is important for the licensing configuration. -

-
- -

Products

-

- The Product corresponds to the ready-to-use item in your offering.The identifier attribute of the - Product is - important for the licensing configuration. -

-

Product Version

-

- The Product Version corresponds to the binaries you are planning to release or already released for the - Product.It is recommended to create the Product Version for each external Product - shipment. The version - attribute of the Product Version is important for the licensing configuration. The Product Version - completes the definition of licensing configuration that will be checked in the user environment. -

-

Product Line

-

- The Product Line groups the related Products in your offering. It may be different editions of the - related - functionality. -

-

Product Version Feature

-

- The Product Version Feature describes the state of functionality included to the Product Version. It - is used as a reference to formulate License Pack. -

-
- -

Users

-

- The User describes the licensee of your functionality. The identifier of the User is a part - of - the License Pack definition. -

-

Create User Origin

-

- The User Origin provides access to User descriptors. The typical example of the User Origin - is - the list of - users registered on your web site to download Product Version. -

-
- -

License Pack

-

- The License Pack is a container for License Grant descriptors. It has references to the Product - Version that is licensed to User. License Pack is intended to be delivered to the User - environment to allow usage of restricted functionality. -

-

Back

-
- - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/images/feature.png b/bundles/org.eclipse.passage.loc.operator.intro/content/images/feature.png deleted file mode 100644 index 0e68e2d4f0ef6033fdc7a587ea7464edb42ee27f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmV;B0dM|^P)1RCwByQaf^lFbtJ5bTm{@?r;O= z2FU@S=M-dHXwpC(Zjg>14zMZd!VRdQ+J>6wc??5XJDb&vu+Zl{Nj5FZLNH`jGNC~RBOuMU`1@_~XE)-*{H*i_dw*eljA)+=|@ z-;BV;-|Pbb`Mys<5Kxw73b-sw8pn~QXdX)_1@QT<8H|U~#-gYMSO>#c>?l ucd!qd - - - - - - - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/images/info.png b/bundles/org.eclipse.passage.loc.operator.intro/content/images/info.png deleted file mode 100644 index 0c20ff19964198220e75faffc2f64775beb789a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)~myBnujnC73FZQ-H=H@caP8P{<|4FhPO@10+QuV3Vz?Xf?a8l<-NYU z@9X#O?ju@-vd_Et!bUK|T*L6wLG@(GAl}aUAEEf00V)5$+1;d?H z*^s(kuf-lQUDqST$i+EduML743Z`1G*9-Tv*^DNW$q#kFFhMPe4_R$#gTa7I(+p)h zjuY>8h!F&tOePYnR;%GvVDZ1JCJ1cXz8d5%2=Fxm%!VXbVMyWz+2}tyaLoeD3ItOO zi4Ku3^~XJ2G|sKJP;o|FrDpody65- z<#NKy<+4zKqPAKsp=vZ5$x(hj9*^#yj|oaprcxdeDT2f(AdZ<&N-S=wg5m~+Wg=LDG82%DKtt{PSvGPk2vL%g4qo>E`~Ut)DMd?2(^P>=_lOnx zBZLju^6$dDGD~J`dpoNQY&0!6?4}MjBvqb!ucnUB8q80gAo+vq|00000NkvXX Hu0mjfb!w1$ diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/images/text.svg b/bundles/org.eclipse.passage.loc.operator.intro/content/images/text.svg deleted file mode 100644 index 6e7b6ce61..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/content/images/text.svg +++ /dev/null @@ -1 +0,0 @@ -text \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/images/user.png b/bundles/org.eclipse.passage.loc.operator.intro/content/images/user.png deleted file mode 100644 index db35a039199a503a2338cbb84def21ef701eb283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmV;R0bl-!P)h=qdLEpP;7)YN~ChbD1bcA(vgUK1|=BTKX724XJG@} zA7=^Qp@4!QxcpDkL|xZ$5@GhlvzsUntf(I)uyfNigtCgFP#j7FFY)CHz)e&RZQD|k zBoxOn^?k3-lx0clx+2JS3E&u?0u- - - - - - - root.xhtml - - - - - -
- - -
- -
-

-

Welcome to Passage Operator!

-

-

Eclipse Passage provides a complete solution to control the usage of licensed functionality and to manage - licensing-related data for OSGi-based and Eclipse-based products.

-

Here is our quick start menu:

-
- -
-
Issue - License
-
Your user wants a personal license to use your product

-
-
Issue - Floating License
-
You want to configure a floating license for existing product and user

-
-
Configure - Product
-
You want your product to work only for people who were given a license

-
-
Configure - Features
-
You want some usage scenarios of your product to be available only after an additional - payment or only for special people
-
Create - User
-
You have an existing product under Passage licensing and just want to give somebody an access - to your features
-
Quick start - guide
-
Helps understanding the basic concepts of Passage. Here you can find descriptions of all - entities you can meet in Passage -
- -
-
- - -
- - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/styles/bootstrap.min.css b/bundles/org.eclipse.passage.loc.operator.intro/content/styles/bootstrap.min.css deleted file mode 100644 index 92e3fe871..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/content/styles/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator.intro/content/styles/root.css b/bundles/org.eclipse.passage.loc.operator.intro/content/styles/root.css deleted file mode 100644 index ce4e6545e..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/content/styles/root.css +++ /dev/null @@ -1,93 +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 - */ - -.page-style { - text-align: center; - margin-top: 100px; -} - -body > div.page-style { - padding-left: 30%; - padding-right: 30%; -} - -#title { - margin-top: 3%; - width: 50%; -} - -#icon { - width: 10%; -} - -#copyright { - color: gray; - font-size: medium; - text-align: right; -} - -.content { - margin-left: 2%; - margin-right: 2%; - padding-right: 10%; - padding-left: 10%; - font-size: large; -} - -.content-help { - margin-left: 2%; - margin-right: 2%; - padding-top: 2%; - padding-right: 10%; - padding-left: 10%; -} - -.body { - background: #fff; -} - -.icon { - margin: 5%; -} - -.icon-help { - margin: 1%; -} - -.link { - display: block; - height: 100%; -} - -.button { - background: #fff; - transition: all 200ms; -} - -.button:hover { - background: gainsboro; -} - -.header { - padding: 2%; - padding-left: 5%; - padding-right: 5%; -} - -.help-header { - padding-left: 5%; - padding-right: 5%; -} - -.fill { - width: auto; -} diff --git a/bundles/org.eclipse.passage.loc.operator.intro/introContent.xml b/bundles/org.eclipse.passage.loc.operator.intro/introContent.xml deleted file mode 100644 index 9babb248a..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/introContent.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.intro/plugin.xml b/bundles/org.eclipse.passage.loc.operator.intro/plugin.xml deleted file mode 100644 index d4174c587..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/plugin.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureFeatureAction.java b/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureFeatureAction.java deleted file mode 100644 index c4f42be6d..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureFeatureAction.java +++ /dev/null @@ -1,27 +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.operator.intro.actions; - -import java.util.Properties; - -import org.eclipse.ui.intro.IIntroSite; -import org.eclipse.ui.intro.config.IIntroAction; - -public final class ConfigureFeatureAction implements IIntroAction { - - @Override - public void run(IIntroSite site, Properties params) { - //Configure feature wizard - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureProductAction.java b/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureProductAction.java deleted file mode 100644 index 9488d7a39..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/ConfigureProductAction.java +++ /dev/null @@ -1,27 +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.operator.intro.actions; - -import java.util.Properties; - -import org.eclipse.ui.intro.IIntroSite; -import org.eclipse.ui.intro.config.IIntroAction; - -public final class ConfigureProductAction implements IIntroAction { - - @Override - public void run(IIntroSite site, Properties params) { - //Configure product wizard - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/CreateUserAction.java b/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/CreateUserAction.java deleted file mode 100644 index 667eaa810..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/CreateUserAction.java +++ /dev/null @@ -1,27 +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.operator.intro.actions; - -import java.util.Properties; - -import org.eclipse.ui.intro.IIntroSite; -import org.eclipse.ui.intro.config.IIntroAction; - -public final class CreateUserAction implements IIntroAction { - - @Override - public void run(IIntroSite site, Properties params) { - //create user wizard - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueFloatingLicenseAction.java b/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueFloatingLicenseAction.java deleted file mode 100644 index 29b534845..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueFloatingLicenseAction.java +++ /dev/null @@ -1,27 +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.operator.intro.actions; - -import java.util.Properties; - -import org.eclipse.ui.intro.IIntroSite; -import org.eclipse.ui.intro.config.IIntroAction; - -public final class IssueFloatingLicenseAction implements IIntroAction { - - @Override - public void run(IIntroSite site, Properties params) { - // Issue floating license wizard - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueLicenseAction.java b/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueLicenseAction.java deleted file mode 100644 index 156058a98..000000000 --- a/bundles/org.eclipse.passage.loc.operator.intro/src/org/eclipse/passage/loc/operator/intro/actions/IssueLicenseAction.java +++ /dev/null @@ -1,27 +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.operator.intro.actions; - -import java.util.Properties; - -import org.eclipse.ui.intro.IIntroSite; -import org.eclipse.ui.intro.config.IIntroAction; - -public final class IssueLicenseAction implements IIntroAction { - - @Override - public void run(IIntroSite site, Properties params) { - //Issue license wizard - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.seal/.classpath b/bundles/org.eclipse.passage.loc.operator.seal/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.seal/.project b/bundles/org.eclipse.passage.loc.operator.seal/.project deleted file mode 100644 index ddf20d239..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.operator.seal - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - org.eclipse.pde.api.tools.apiAnalysisBuilder - - - - - org.eclipse.pde.ds.core.builder - - - - - - 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.operator.seal/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.operator.seal/META-INF/MANIFEST.MF deleted file mode 100644 index 0c41fd53c..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/META-INF/MANIFEST.MF +++ /dev/null @@ -1,20 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.operator.seal -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.operator.seal;singleton:=true -Bundle-Version: 3.1.0.qualifier -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Bundle-ActivationPolicy: lazy -Require-Bundle: org.eclipse.passage.lic.api;bundle-version="0.0.0", - org.eclipse.passage.lic.base;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.bc;bundle-version="0.0.0", - org.eclipse.passage.lic.execute;bundle-version="0.0.0", - org.eclipse.passage.lic.licenses.model;bundle-version="0.0.0", - org.eclipse.passage.lic.oshi;bundle-version="0.0.0" -Import-Package: org.slf4j;version="1.7.36" -Service-Component: OSGI-INF/*.xml - diff --git a/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index bb66e7df7..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,21 +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 Operator Seal -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.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.product_3.1.0.pub b/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.product_3.1.0.pub deleted file mode 100644 index 1094c3d58..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.product_3.1.0.pub +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: BCPG v1.70 - -mI0EY4TppwEEAKqeVKlOCkXRTKMH9vHT3F0v2j02DcEJeu0OfugaseInpnc2dJI6 -GHPHpjzqdLInRzG9ghlsKpvn8xD4/4VHVsyzANfusn5pnNEf1b+cMCOB2axqk6Ar -oH/tFeLpUEtTGaSB6LaCPAYx4WcJ9PfZ0puoi/V+P+epgp5Q9vXPu00zABEBAAG0 -KG9yZy5lY2xpcHNlLnBhc3NhZ2UubG9jLm9wZXJhdG9yLnByb2R1Y3SIogQTAQIA -DAUCY4TppwUJAAAD6AAKCRDxve9QZNQXr1UWBACfrClUvXEAVDk13yUwkJJtsaNX -W2jzHzYIXL5i2F30Fchlqz4/te5MXVxhMjg5WFXM4xxvTiHuOM565wS5VGzrtkqv -8b39KFxAXgd0iwJO2/Fi9YLKMQmG7kAbvYSN1d/4tsfIT8j1DgIlOBwPuN8SlT/y -uPkiq1RwzbPKdvw+8riNBGOE6acBBACqnlSpTgpF0UyjB/bx09xdL9o9Ng3BCXrt -Dn7oGrHiJ6Z3NnSSOhhzx6Y86nSyJ0cxvYIZbCqb5/MQ+P+FR1bMswDX7rJ+aZzR -H9W/nDAjgdmsapOgK6B/7RXi6VBLUxmkgei2gjwGMeFnCfT32dKbqIv1fj/nqYKe -UPb1z7tNMwARAQABiKIEGAECAAwFAmOE6acFCQAAA+gACgkQ8b3vUGTUF6+ADAP+ -Me/EaApeEfXcDPtYs0qbYPgQUS00XZ9hPWp2i3IidDgb6md/Xm242Sp5W6VyfnWl -bflKlB/jhfDml8bE/Y3Sdb8UkpKekNxld4har4vMcI3N9TsPZkRjjtdOV8ZDuQPZ -r/+F6Lwej/vkVUlBHRAxAJXCJCBnp+z4vRFwlFBRugk= -=k4Jj ------END PGP PUBLIC KEY BLOCK----- diff --git a/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.seal.OperatorFrameworkSupplier.xml b/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.seal.OperatorFrameworkSupplier.xml deleted file mode 100644 index 1b01b7d67..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/OSGI-INF/org.eclipse.passage.loc.operator.seal.OperatorFrameworkSupplier.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator.seal/about.html b/bundles/org.eclipse.passage.loc.operator.seal/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/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.operator.seal/build.properties b/bundles/org.eclipse.passage.loc.operator.seal/build.properties deleted file mode 100644 index 4cfe5f197..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/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/,\ - about.html,\ - config/ diff --git a/bundles/org.eclipse.passage.loc.operator.seal/config/log4j2.xml b/bundles/org.eclipse.passage.loc.operator.seal/config/log4j2.xml deleted file mode 100644 index 39e8f4b73..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/config/log4j2.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - %d{HH:mm:ss} %p %c{1.} [%t] %m%n - - - - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFramework.java b/bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFramework.java deleted file mode 100644 index 218f76b30..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFramework.java +++ /dev/null @@ -1,79 +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, further support - *******************************************************************************/ -package org.eclipse.passage.loc.operator.seal; - -import java.io.InputStream; - -import org.eclipse.passage.lic.api.AccessCycleConfiguration; -import org.eclipse.passage.lic.api.Framework; -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.base.BaseFramework; -import org.eclipse.passage.lic.base.InvalidLicensedProduct; -import org.eclipse.passage.lic.equinox.LicensedApplication; -import org.eclipse.passage.lic.equinox.io.FileFromBundle; -import org.eclipse.passage.lic.execute.FocusedAccessCycleConfiguration; -import org.eclipse.passage.lic.internal.execute.Logging; -import org.osgi.framework.Bundle; -import org.osgi.framework.FrameworkUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("restriction") -final class OperatorFramework extends BaseFramework { - - static final Framework instance = new OperatorFramework(); - - private final Logger log; - private final AccessCycleConfiguration configuration; - - private OperatorFramework() { - configureLogging(); - this.log = LoggerFactory.getLogger(getClass()); - logConfiguration(); - this.configuration = new FocusedAccessCycleConfiguration.Personal(this::product, - () -> FrameworkUtil.getBundle(OperatorFramework.class)); - } - - @Override - public AccessCycleConfiguration accessCycleConfiguration() { - return configuration; - } - - @Override - protected final LicensedProduct productRead() { - LicensedProduct prod; - try { - prod = new LicensedApplication().product(); - } catch (LicensingException e) { - prod = new InvalidLicensedProduct(); - } - return prod; - } - - private void configureLogging() { - new Logging(this::logConfig).configure(); - } - - private InputStream logConfig() throws Exception { - Bundle bundle = FrameworkUtil.getBundle(getClass()); - return new FileFromBundle(bundle, "config/log4j2.xml").get(); //$NON-NLS-1$ - } - - private void logConfiguration() { - log.debug(String.format("%s runs for %s", //$NON-NLS-1$ - getClass().getName(), // - product())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFrameworkSupplier.java b/bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFrameworkSupplier.java deleted file mode 100644 index ea3db3ef2..000000000 --- a/bundles/org.eclipse.passage.loc.operator.seal/src/org/eclipse/passage/loc/operator/seal/OperatorFrameworkSupplier.java +++ /dev/null @@ -1,29 +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.operator.seal; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.Framework; -import org.eclipse.passage.lic.api.FrameworkSupplier; -import org.osgi.service.component.annotations.Component; - -@Component -public final class OperatorFrameworkSupplier implements FrameworkSupplier { - - @Override - public Optional get() { - return Optional.of(OperatorFramework.instance); - } - -} diff --git a/bundles/org.eclipse.passage.loc.operator/.classpath b/bundles/org.eclipse.passage.loc.operator/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.operator/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator/.project b/bundles/org.eclipse.passage.loc.operator/.project deleted file mode 100644 index e077290bb..000000000 --- a/bundles/org.eclipse.passage.loc.operator/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.operator - - - - - - 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.operator/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.operator/META-INF/MANIFEST.MF deleted file mode 100644 index 4c11f9e7f..000000000 --- a/bundles/org.eclipse.passage.loc.operator/META-INF/MANIFEST.MF +++ /dev/null @@ -1,14 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.operator -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.operator;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.runtime;bundle-version="0.0.0", - org.eclipse.passage.loc.workbench;bundle-version="0.0.0", - org.eclipse.passage.lic.e4.ui;bundle-version="0.0.0" -Eclipse-BundleShape: dir -Provide-Capability: licensing.feature;licensing.feature="org.eclipse.passage.loc.operator.product";name="Eclipse Passage Operator";version="3.1.0";provider="Eclispe Passage";level="warn";agreements="licenses/epl-2.0.txt" diff --git a/bundles/org.eclipse.passage.loc.operator/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.operator/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 959ea88f2..000000000 --- a/bundles/org.eclipse.passage.loc.operator/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,41 +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 Workbench -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\ - -product.name = Passage Licensing Operator - -aboutTitle=About {0} - -aboutText = Passage Licensing Operator\n\ -\n\ -\n\ -Version: 2.11.0\n\ -\n\ -Copyright (c) 2018, 2024 ArSysOp and others\n\ -\n\ - This product includes software developed by Eclipse Foundation, https://www.eclipse.org/.\n\ -\n\ - This product includes software developed by other open source projects \n\ - including the Apache Software Foundation, https://www.apache.org/.\n\ - \n - -aboutImage=images/passage_lg.png diff --git a/bundles/org.eclipse.passage.loc.operator/about.html b/bundles/org.eclipse.passage.loc.operator/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.operator/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.operator/about.mappings b/bundles/org.eclipse.passage.loc.operator/about.mappings deleted file mode 100644 index 48c6cb1f8..000000000 --- a/bundles/org.eclipse.passage.loc.operator/about.mappings +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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 -############################################################################### - -0=${build.label} diff --git a/bundles/org.eclipse.passage.loc.operator/build.properties b/bundles/org.eclipse.passage.loc.operator/build.properties deleted file mode 100644 index 9be656415..000000000 --- a/bundles/org.eclipse.passage.loc.operator/build.properties +++ /dev/null @@ -1,28 +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 -# ArSysOp - further support -############################################################################### - -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - OSGI-INF/,\ - plugin.xml,\ - css/,\ - images/,\ - about.html,\ - about.mappings,\ - splash.bmp,\ - licenses/,\ - . - -generateSourceReferences = true diff --git a/bundles/org.eclipse.passage.loc.operator/css/default.css b/bundles/org.eclipse.passage.loc.operator/css/default.css deleted file mode 100644 index 12cae8272..000000000 --- a/bundles/org.eclipse.passage.loc.operator/css/default.css +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019-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 - *******************************************************************************/ -CTabItem, TooBar, Button, CBanner, CoolBar { - font-size: 10; - background-color: #f0f0f0; -} - - - -.MPartStack.active { - swt-unselected-tabs-color: #F3F9FF #D0DFEE #CEDDED #CEDDED #D2E1F0 #D2E1F0 #FFFFFF 20% 45% 60% 70% 100% 100%; - swt-outer-keyline-color: #B6BCCC; -} - -.MPartStack { - font-size: 12; - font-family: 'Segoe UI'; - swt-simple: true; - swt-mru-visible: false; - swt-unselected-tabs-color: rgb(255, 255, 255) rgb(255, 255, 255) rgb(255, 255, 255) 100% 100%; -} - -Composite Label { - color: black; -} - -Text { - font: Verdana 10px; -} - -Button { - font: Verdana 12px; - border-color: #EEEE00; - border-width: 2; -} - -/* Identifies only those SWT Text elements - appearing within a Composite */ -Composite Text { - background-color: white; - color: black; -} - -SashForm { - background-color: #c1d5ef; -} - -/* background uses a gradient */ -.MTrimBar { - background-color: #e3efff #c1d5ef; -} diff --git a/bundles/org.eclipse.passage.loc.operator/images/about.png b/bundles/org.eclipse.passage.loc.operator/images/about.png deleted file mode 100644 index 26241f78f716e4931458e993bb840148f17a0cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10083 zcmeHth85VOie`=8v}>|006M%<)k!TtP=o$z=ekLQZu=E`|8CY zS-w|(4*=9;nJT@%ereN~$!RD903mn)KqLVG@c2^q69WMB4gd%QxB!62HUL02)-puL z`_d7uwWOq)yrd+JnuFa(>(3Sd0L!@9hY!48o$MVf2tIrm9A#(4aB$TK4UN?JAU@vN z-#G$62^;D|jz&Nbqj53zF=j(Vxp9f|!?y<7>MPv1we?>L$#;^8)%11L1;r6z!2vOFSrAtf4*x#e$cYjBuNNB$d9a zbG0MU&uAa*T`_WL%_po#DlN3szv{&b;_B$*FT6A~j%>3z0pN`|7 zKd+y)G98bP{$9H8VnmcuNqf@vPue`p9eL$*>^R`W_ zx;8%;T%zY2Iwv?Pt7eBWUEo-y{juNJY#i3{MK-lfN=Xr%YAp^d2V*m>_t~#Hp05r= zu<8x)29~bZi3fMfIv#5Fc#n3bnHKXZM=;(0dfkFeB~~P(4xQpBOn;ZChg^_v9fFLYT1-&UN@n!Han*xIs)263~|va9s4VjUNAo}n-%3e#&1 zH@-nhR_pnI&X4t9jSQX;&z_`9E{34JEMoMZ8P%v2uzy}UWMFyMtp~3(+;CVVv#i^S z=^K6C?81^x*`gX-VDLU@TUs-mSV&oysI>Iex_>k^UYZFGG4^n#n@`wI6-HOlx>gA& zRDfWX8LotHfmP_>LqQc5&ZM0qm@J_T4v}_7Z*|`@%~zz`KmW z#3Ur}r642}EJ0gW-G;bnY?hP3oUo;{@G9i4k@3-D7rw{edeJ4M?i&s^kLmT@GK!FS z!&AiH8WnmIxkwA;d$nx@wN`kxv0DGo*w2hhh*#TAQU^5zA zK1ci3dly(DGj4_S=`YIZGN16*0z7wpPwt5~7;@9FWl`!z5qILJli*nbf$-o#z=3?3c_`!M3XxSdqIEHO5)TIUTL6>o8XzF_aTVD_Cr|S#LwQs$j zst$;vD5QkaAxOpTRWzdt{`&G2*T4AXY(OHa)<;b?{f-0yIxbb5?RV@WiZx3A1fG-J zt;fJij3#8Mc|4WMA5w>!LD23W(oF_*R+{mj3Qd)8`ePM?@iN4}jYWT4{JPTTCUG|u zRF7DUeMOr@L@yU={=+TzT}8o1?XYcG`q5BXg95tS0t-1|SIOP`Um;=8w5tn?_f4`! zX(Z}fD2;y#z~bM@=k=dgq#wNG=AmScbjE2V;?xg>#&Gqqf?FI z7Z8Uwfig)V6OXPBI?C+xiZ(OAYWqeCCFdR1*@Bmp1RNTo9#K-^V75<;c~N-c-f(VT z@bC2`Pki%zMHyhv5IB*}wHQ`qQiJexhg2(CKN!w2{KT8sm)W5gG5!ptEDd0-lM#*^ zF=u$L6Kj)t&L^cFA9Nw$nVf;`dJX9$4d&ZvH5#SLGP1;4cQkn!mMou1EMMg_fLN3d zqnGu`93od`PwqwM%EeeHi>(Ss!JxNg2EjbMq#(^OXnf|wDJ`hxoI7*U=MAP0O zWF3PaXee~WQJe%{Dw1*%A*~Nlm`;Kt+G3TE6E|8rVe%YiFDR`Vzu$bzzI|cr)rr6( z@Y7Q{qMo%wLf$NFq!2$6BTZ+iflA!_3#-Z(aHQHS{$?+e(Cr{YFDYR~K2gT6f=Pio z%#xAnSoZ54a-lA8P9RD_+7c_Qx!e@%+W7f3-FguYe`o;1DT@Rs<3B1UxH|#!F#j?)=3y~88#swv$Joa&CxYBFe}`s5 zF1jv%KYVmRmo9~c!H#AyK8&HmF|EC!rwrzi?gJsd5z{HIw9dMp3cCYwbLMDUTitou zZ%&b|!o#B8^5kQvlk6*f#n4@^_1$v&+R~skSW@>pgc`esfuEx%)gBA2q%IJVAnP_` z_=5^MBPB)hWmK^JeTZ={R@^-&h8oYvba|R@=%`x7*)-{7?)`<4ET;0?ep{x-8!= zDu^_EK~ENNrcW9LKYn!ox*x?S#lbS$5%yXC!Y#29Z$yig8NVpA$VX%E<}&EM#Xm{* zUGSSQ2yT3dnDdw+bc~6(wD<4g?{5ZG-ssexJH!mQAUW(=fwB9l=pr5w;(i0)YARV7 zNh>thh^u`bBS9D7Ts*j4Ch4^cQ+m(D1PehPD;dc?GdCI8rNDTZ?18_GIiDa> z074{IjOlY1S7>F42zzcg7iWs3it<*?w$9MPRLq|iu+4#)L?lF{S%e=XP`Q(sCS!fW zprWClj{=&liuE4jvMxS9S8-GvPjaWVV<(x+B4>gyY6?5@Y4(1iA`AOoz!b$S_V{`~ zs5OyPhRQsZAWb~`!HcdO`_53Mmz^C#TYQrXQ;7 zxUIoqJms(33iOedz#^(5JX8k>}%A#GV@88k-Wa=cTk-KXa8_hJk_Ud+@`D2s<7m- zo~~$mx99ql)ezSwot@pufX$AF^|ud)?acPqlpPXuasB5+5wj0pn9|jV$}hdu6g5Kw z_a|nmyY=L0ult&eFZV2rTQj33!mo2$m%F-HxQv(S`zLHa(7X*&Qlb0)Hpry49UvSt zllxYLftV(S#QZDJ%22A#nRQavN=u6?&FE%v#W;ZT{4DBXSJlh4|>wAt9!fZH}HfrZ|uq1(AJK-rdD6-G~y_zmeL>Z zt(j5-!6RaJQbRMW|3G@8KU=_IFpuZ3RwWOeZvQCK_>+jU#&lAptv3%O_f1u_Z*}x% z$M;KT;YRA-pWOE`H^<`3ySz%QFmI#I;aQ(4n?3V0BCl&qU<8bsf*;gc+EKSsoWX5(^Yu$ zEP5m2<1yZ`(Ky~#X#N?N?fa2WA`VYRCSJG3fv3{zS$aPeb!a6(+!JM7q*$h7i?&Xjt7`qr+&Weq~nLBB-jN! zkjl6TegTT|%&Ewllf@Qi?)KB!gVU{a@m%wuh0}Y=rn8Neo_=LvMvJR7(3F>z!9rlm zT@!Ga0xxg({J9RNapfL)hXWfZ;@fbUxA3Qiu)f`+nW+F|h?X6z6{YHZ#pbn@POTLW zHN0L7N81pO{)dcPUE$r zI4k0_|0jZWE0n)|cT03CoZ(qH^*JsMZ-YnUYi-g}o1}Q78XAZ#3W&`%*nieM<&OWF z$VL35&D~QvTLj(OXVh(g;&_>??^^ISADEGc+n+EA*xB55{FX zHcQjQHB+#&Ve>quj%LoXp~zE^V5VHOY(*Aryx&3_y`2?iiQ?HK|G^lKt+G03h4dI! zZN+YBt+2wfb@*fEmjnUZTR8Z#jnzWp)MDI4AZpyGg;so(>8TJxJhKGT<@? zE$n^o?H_2U70r+yftCQJsdemx#v`+lrX!`XkLgcX606jKKgy!ZfQgyaSFHPMmk1^v z>ue*WNGc?!R-{M;UPgCs}`){-kTf?4;rh zq;6H_(YjQVN?)=Eh2swg^8z=^Q8{&GbDQ42Rv_KqE8F0|zl4%O6=a`wT5iADt2hsTZ)7uqh~ zT!C$O8YH1k&Y^HvkGRhXlh>BPyrAXlcVpfUHQ4*=nF{IdI&T5$Pd>j7_w%MN97T#3 zlqR#h}}`*F>p4L;n=fCiw7N>NbL9z5)m-3^3}*jn8> zg_mtX^%haf?Iz4F_c4)J7KR!les_`bIwwc%U4KPc%~_J@O;N|Q;5Pr<>V%(|;nnfQ zY0powos66=rqjy5)UrC3;;$U2Lc~E%R?Q7{a~rvhS$ef63{)-8?u(~!CuV!rn2^*z zX_Ts_9PUzDYDJxe-^QhG@1(qs2;etS6E)^#E-w#gty0x-Y(fQu8I`T9kmIA6jf8`% zbzvR5cORQTIoDzp=tg+r7!qYcYVr~WJ(}-(cHtGMfr%IPJCDzOabuCP)E@W(UYGZ} zO-<;TQ{!wBzPw2j8`4afeLt7aEvyAwCK|qG*)0FIFn5%&TJI&$uVG4Q={=#YE@5qg zP|@K=nD(LvpJT@&hIK-QANwt=s-atSB9}jQ&Z4-Nw=zI{U{!-uu4}fSai4YV&ksFR z9L9^~!Js>g3~Ly6G(s_SOrK5mB_I@XZ)|Ahe+wm90ikOd`j85{?;tlNaXr&_{gyN9 zywMjG&pVzmtH~!~`Knp?@!vfwNfj;l+#{RT=o?pyT*U*3%KpL+b>Bb9#U1m0Y%=N3 zT)V09FVRAZ>qPSCmq?XEE*RR(Bzhmr8#RfQJB*QKO;a&oY11G#dp;$etO)|D$5gb# zlkQL3U41a0A9_}bx9cb{#&=HKx^6dpABU#h23ok+{5-RJ_W6?Kf|7GNtPoON+eY%G z^uQlPI$|7`lO|Piq24UwoYVRV{q(+YVbCmN9GiX#9zHMb)y%4>Ydcv$n0#PalTf>p zH}w5XFLANX3fvWII6x9Ztd1#8v`w&b9Rczz1rW=LKN|*09SM- z#C7=W?{VvpU?~qR+to;d!JD_q8vU=ko?=$MtbWZuP!n&k-Ro5BSn@Lx#$lDT?&_AA z%^(Oj_+M@^F1yI{ov56{xmLz{n%sXwtuFq zqTv2IYoky<^0Ny?_VY~4X--*tl&Z07ghO`I@qN=;&vW3o*Ms)r!%N%x^`mH8u@nI0ae*r$TZ`UbZj&<3W! z^`@`Q^eWxPtCrbOhO~cC2$HQ5Js)-qoypJ0ZfHzkt0-v3#q0s;G`ob}`gVzM7%r5v zg*tqRvND(nE%-(JVQVj9Vr(mCYK9#rJk-fIgBJQL*Z7W;PxYW3*cCL-$Ny^}`~{o3 z2cz$+3(Dr2Creh@@w}*7a@}>;_v`?yvup^&uSl47nD~m%g{Lj~z-vZRJ1z6_ti9+Z zB8(Wtz3$Vr<~NTv?F|d|whiV$MhX-6!L9hIKu5ChL4|KFud=T-6jc=@!gSpz(sAZX z<`0?|&4Gb4vlk(Wrl7F%VEpCx?er>`hTj~l z{|AR{64R2d60G^dj|IdjKK>HOCkK>WMbFy~B3Fw7U+=xMySS;F$$Z^=3RKwKi`Tip zjT9Ig6fu}L0XCxQLVTsL8IA8U4rvNt2>rEA3-RZ@k13C_Y^j&AFhPyL*N->VX);6Z2ihODN`snqOogGyX2eJTc5yC!=D9vTyWHwV|Oj#j7}d@3i-CZ*ImBf9k5TpPe-sfKxvsprGWR zupwvl@O$M@X~sT;azqF8wQiKRbei}Yy)dZhMG?U6TR8ky@^pd zn~7R?kevJv^3N1KjK73=62l{sM<4b9@|22BW%?!}?}{9lHOV+kn(+>}4MVPt+-adT zg!ge6{yp54=NmRRlbdnYwHWe2B_=9k&rB*z0*LoV7&5{&P zqp$k1XyTUY*)xz}%cm!30zX#Xx)!A%*tUQs4|c05bDOKPKWQkpogQS!)ZtXO!@BjTZ^Qk~d}s66e1B<;ql^*x3J z|DX?*X0ua9?+*~myCQo_3Ts_=D(F=DI~eK{evy`oq!pdjaUU7F&q2b@r(CLcJ53me zikd{ko|RmqG+KRj{)J||^gEp0))Uo+ekwx+XLv|NAR9_Wk-JOe5as+!jqp=~PdN92 z2D#K)-_)$4lG7n{;&h#WKxiJt%#c7GtI*L2Pn1M5O8d)rr%Pmk2OdVEEhXC9`a|J# zauuE1N#O7lRK|&da<2U!K69>Zs5`!BByMb}Xzk`pZY-AB@pBIWJU>W(pO`3Y^s2wc zWy|!T&t15tszZIm?XiA$ibfA%))0<+61Ux`=#8u?@I_3zc&_Ozo+}e5%k>N7_EW#i zu~~j{j3GEgW4QUAVKGW)S$?{34jXksxJi>tf-g>f0svhZswuhmUTS_Py&^X4t54S# z(z4HywY20v4UE_QQAoJqMLsI%2OO!2IQvl=W2+aLRRin|K$o^*9i?4t4?`XVPs$}= z{P?uVi!VmYy5$yGMxmPrdFo{@NhA@z{u8OQKj4T6wg2G&M^B><>(Q{kO*YyS(Hyhe zJ2xAG^B<`cSj>)@F#DEbu$uhCzOs|eyf8xNKv)_dHe+!CMaolS$hd^%fQS@KRunPJ zL{c833tl04vu{EECN&b;twT??F*=pxe;-K40&5{@lN4s4?64W0p*;Jzvk)Y~lk_vo z?+bKNK@mUy<8TeH8X;=#nX?2Fwn#;$V~8MQqJGnNrm(S^H)77?$aE9bRvAunN40yD zCly_uFRb;!{FlBt`U@gKz7^1Y<+t954{nEeE%yTK*sIs8@JNjUUygjX+59O+&BxvS zr9kzX7VD*CZi%b=hdXDW^O&S|q@zf{3Ux-v5v8)*xbN;e zHQ4&+_|bHyDhaL~$Xu0Rs8J^T=EyIIz*ot(eG&5q7g+PPM#3sOt2x)8#!3JQw5^8o zhg!a=?8)v~1%G?c@qlivY%n7wDaFzWDVXm%4K`8^`VlcJ@#b3d?d`GDeQB#<9L~R8 zTXrtx~YOhvlFaeYQQXa((`BM_YQvTtN4H&eQ=Yo8!uCpD~$~mp}vfV1+ zoXfs+lZ0+UUWlMqK5@Mt$KeidzvJ2pIK80b9FR9F856M4oy5}i1 zhnbM=Nel7if&xjd?r&-Iu*jr??@f}OOh&5NErsf21e;Y9J>;x65%`k^PUv}z1p_#7 z#ZpF#bF|td3#rV0x$lpQn*2W^jKOlu`QjV(ce@!;l9^~ihoQQpUK4F+6Cw{seN`KO zsXc+D@jljpqp-y~(0E+3sYvtMYp>I>Mq1!-SRs`RTS8p-ykz3bYRU=tsiAXlA0CjFwI}Z^5mfV~xQr-5d#fvR znXu^T(z$*F{U;rz#=p?Pg;+xML14#v$w6><*$-^1-$?%a2qTda39E}#v<6%_mOm`+ z{~%9Z2ht|>Eoe`(<`*(7e?AFULY3c2B=^SIb#I^J&BQ4>ydzArgj`Ayj4L62}~EpGmA zwY@4Pmyrk3*_9Ylpw(3o;n168F7ZgXV$0b=gUjcWPdy@JPY`8?3^vx0DI}6^#xVUf zJ6kdr%B@>7P$0&M%||u%-@S$As=-Y5Jl~)fN&OM>4DsDw`wpoU{}FfoS#F|wz6jlw zpKp$i12|bbEgK>G)LSGKwh;4kav#IJfsYyP>>QNNoba9DIupbHs6Cz<1hACb37~2T zf7^AN2V2&{axj0rJcr(77@%TxS-*Eb-t9iUVWUnB<+;Iv5oH=~6JumiT)1rBK&ddmp@CgwYUj!py$j#G`Hsz;qXvMacpC?SeWRe z{UT>C4t#dqiMGKaIXTt!kA9koPWRUx83A-L7v|IPZnAi6cx7b zzkJSteI7(_KFljx{Q06Ds{ViKAxXx!Rb76H)K2b3?q0<7zmv}SRHJ_Ob#J3f`~Hqb z+px$px?M6}%(EjKk-2d_`;}t}Fepi~5|k%> zte0Dk7mu%Sn zHGuvPe)__my^~YiQR|eBn(Q$ehA&J(gc8}hoz`T_y#a!tzG+=PU%VZz{r7a_orLg21una@o4)`py75~4J;xDK! z$H)WJw#vi>MwqG;tiRBaLrw~UUnN*Y7ec6&E~El12UQ2vy-OAT#to_N!E{Jp#UEL7 zd3#Issr@uo;?xvoG{2lRd0KFK5rwS@{|&+a68Sx^--NIeZxc_641<$31C(oCCxarP z@0DM9nT9`}Lad@7k91K?_J_|4ucya_ZK`cy{AqSdt?$w6Sx^;=O{)WeDF18z*9HFr zqu{hc@6Jzhz5eza{-Dg&EW(|KYD4s*C~pD>_v8z9Iz?vB0B)LpeC^p68xlFU->3_IdSv^Zo4m;`@RB ziI8o7Pgwyr`8Xc7M#k19zPh^8`P;2k8(q0em5LA&7zWOol6EQO{DT4sSlLAp`;LCI z|4R7F7pvU*cvWqUPBID8zu!T%3XqUrXrFTX9B&wgc^dhz;8naFKi1p$!QRg|Z{NLf zvb>_Un1O3Ca&j!Jt$Ya0VPknQ!{855ejSP9FY`2*S@SgV6WsCy^5#cXpSd{Id*HP$ zd5@--J7vd#^YXtOd8bF#7avN$z3JEr1;K|XWW(P!{JGw5Y;Nw{&ZVAVc03kl@M@I6 zlRk`0mR;3tZ1ErF%9&C2wZ4RJb)GE|Pc?F40!jA*q(&wJF0fN@XGYpU1LQk1! zIVyVEAbMkt{%DlWgWmz*4|!O)o!X*cqi|?0m=VrZt0y8805r8W5DfaT=BT7nIu=#I zAM{YOwv@LHz5u{@Bt}7@y;#8l%eqa`Tu${)JW2D8E^6vSbPeq#Sh14p{eNJ~wbIeQ zhwjn+R6JG6p*K%58%vT`pb3>_lI89()2=3>4+l#&eBU#|wnvZ9J>En?p#!_iMkZs> z-rS3-stjF=61^TL5b~fK=8Q^`ueFlty6V!A_Vd3~@=M~lj5OovP#Kh^*IMUQJf jZc6%qqd*vl-JkPc62VtApmtNE00000NkvXXu0mjfN9(F- diff --git a/bundles/org.eclipse.passage.loc.operator/images/loc32.png b/bundles/org.eclipse.passage.loc.operator/images/loc32.png deleted file mode 100644 index 8f2e30bf35d00f5aad84ffecf031e6466bf2992c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2061 zcmV+o2=e!dP)QJTb`(KG#XBe7q8?ZzS%W(ep1HT9U`DFq4F{CZH z#J8|gxn}p;r~g$pW2VaxRcDHEHk|* zmvIGYSZoS)SDM+gwVbpp4~u{PRV+3&mbD^d7$)IvjjmvrYn6>0+k1)Drfwe0OTp01 zRw2ZLz}*;tw|bZ}If%(D{BWyg?A+OZ+%m6d?4?zg&o_~tlf(ZJyW7JATe@j!=)e_k2NR-UJyr*%AR5-_XbaQP8tMZuBE!Rr+ZItc zYc$mt?x0$fSwJy>8ftgpuy<@g0z7b`Z0hT!SMrw?WL)D?rNO4H#n>FN>$dw(r+9zk zG2A`}35gEUvOEZ>Khvty^{o5;-|!~I0ninU@YFA7Ft=nP0Lx!1;zy6YO{7~xvB(>M zy)u@LLSP&KRxa%E)!$AM|~UpoNRqTow$;`G{ybJ@tsO~PhXsrc+h zpH5=3lSo)cjxE0}6QQu@?77{NTX(0;pX0H2Vj^Q2X1{jtTu%ykLUF1+_~9CT!M`r@-k(>1%QdL8kR1Py(>9t zC?uu2ID4X&@}t!N6wJ=%)g2`ycyIq5urU(IwEa6R#XVdb%{NczCad{ogEy-tY zNj_Rw=ghGhRu=!6#1vN_fN_)4*>QF`!Z0xn6I-119)NGJ`52pBK~ZH4-2{+iAk=dN z(yg$|Ru}ZOS`{7LFiFew5Nrvt;_+>qKUvr3$YNK)0K>Sq2qi#OWh^%Jp5V7@+gS6R zom7=IFltOvZ*YK+3Iu?3B2bV~5ufTRs?tpLQGjq*XY_bKb=U8*e9l(pKUcuASD!#p zWOUs?k?$?WmZnZBKCK}>F4o<;x*}Y!3~+c?6>WDz;pgpT+Gi-s=pFw_n}HLn&ciwhHm0db=`BN28+XPAvZIH^f8HK zB%DKHIz5JPIV0efX23am#4njvZI}|>Dz(N!OjW#uPY{M%nX1xE*@tO&dP_PYOYCKEU&7uBs3#SiV=j`zt zRGqG4L`nien3Nx`rmD1_$`f@s6Kr3gRkN@s=I2JTDWp{)DH=afD}7NvyL*$8v-%!iLw z`R&@OW0xn7X$`qY`<=nqL_DC}rJgtBeS+5kCBVCbH--WLa245nhmd4PW6f6{smz;} z`R|R@w{wo3t{FetFqP!Q_;w62?6*NXF}lCUfJu0ue34JHR1E27q>3yw%FfnIs@-2+ zlz6s2_c6DlYX;yOWYG*90}cXz1)A>XeweNTNCZ&C3p7|J;L?iorVien^;iMx<>Su`<= zfY!O!!~yZf&1D}%E|?@15;C1KOQy-d5@B0mXsLB{PU1zqC@t^DdD}v}Wpn(JUi3L1 z@BcaHIp;j@d0~YWk|Hgc#vvzGpc1G6>O0MN- zSe64JC-uNC!r}p3xBh&(&kVojxG-MQ%3}DWk^s;k4@&1^Rf_9C z$cY^|i#ja28c)dsKpUwWbtBs4L8-;4Fs1_w;=e^LG9tb+HTn{wOCFROLGFBEUdHe<J{7x&U0mGl9L}_ zkj$bec5{CXV*Ex>-E5fUx+|DqG4#i^wpg)6!P0bs}=+0Qwma9Yzk1 zKc`J;C@jtuiuaDsGH~V>F7=J!p9#hk=bs7U8M&$YdBa$XL5($>I`W-4mun zs#Qd0z$z$o19@8Gb&qNxv9T=~@(U_V&CAyH&4%`A(-ANpe+jH|=>KjwpN~>(_K3J)m2}`zF+cYj~&FR$aDbb}J zcY^b}fs0_23&o_TbC``~d8$z=t+G*CWy3!cjK*(c#b<_nY~NWF6{>6_;?f0=HYbX* zs;GYT7+dZ7f={^z50XuL$UJt(MIZnLiqNu{k-ox7x z7J2&EMQ(Wf`u?VF;hUaIw41O4X-&97PF#^UebzllB+Al{o-q6{b(vF`ff zc%76<_~!6F`Tivh~1LhaGTfdnv0f;J`;ags+%)kpSU= z1_Y@@S`&u|r_xGVUw^iz1I_GMvdrXf%1ZgQN*o%Lx7JDB%qefY&Fk$89*zR)OnV84-R td0@X%YSDZrwi2F!d-|Ptg%uul{sSGk56R%zB7*<`002ovPDHLkV1gl-&5-~A diff --git a/bundles/org.eclipse.passage.loc.operator/images/loc64.png b/bundles/org.eclipse.passage.loc.operator/images/loc64.png deleted file mode 100644 index 9865675e988d0bcb2829f7e0576bac615ea540bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4382 zcmV+(5#jEMP)Nkle7c|aaKC^MG6+4M^#w4+8B#9k3ht5I6*Mk2IqrsenA-IwV(Pie-2tr12IlJi6t> zFKv5qe{sG;F|Siq{c_+^ApH#IZvy@ocpKOZ)QkkvBcXs|U=?r!CK@gvo$a*q^_`{5 zs$bf7&GbW!h4*B8+Hdi?x@>ku$B@c!pBV)<0lxv>9L_|;Q9vQ%P;Fb znEdT~H{Iu`={WC&QQqd8e6B8p1e0?jcz?VK+yxvv6QVO!z?XrwfDZs&fL8*1b<_Tv z*F9fy?cYawQr6|CH@Hkw{Ivw{ivVy3@cd8-&cqmh-aB!x@EUk!6d!XRdiB9|_rCo7 zwQ2Uqiv{WRF5Of<3*qVI?YUlFhXid1V-#QuaP{dHU4v9TjGv-Mp8H|NmO~5Qx^mLK z%Oj>n)Kt%u>2rba026>^fH}~>!4#kYe+K5CZZTBw>fmS2BhTGmvH8H_59j5V&(M6=IX`Oz%F1B)~S&YgDGGeeT6pxmjNkU^W$|tD&2B$ z(e63&84y8uKC#PDuyA^G!<17Xqt+mD3)-#NhGY(-5Dm>5vH>}L~DH~4aYmEu4u;N zbuwyf8k(vQ)niuuV&K=n*Uv-&{}e}H2*{EjRFuxS|Ahlre0yI0k*}Ou_CkW@Q0eZB zQ1(G16KCXb(>LcaEv%QMcbT|3q{Di}L-(jnOeZYUmE5HGS=xbc#fM3RpGO><3gDbzkqF)&RPA;Ip{sILjo+8E?(|9Tm>-hC;WJ^A8F@j6f2uBKWKmZlu?KF}ArWBlZf z@l$-;EZ*OGgx@~AgTs4knS9|WqEX{h6S8F51|026ue6<<3GSFV{}A^S0l2w;?dx~7 z=wa9PQQj6#y?wh=qqe%8?#?KWZeGdl_bnb!cz|F>52_ZsZ1kwbB;S1d#c9)F@H>_axqA^r`RFA_Eql7tFGJeX-zS;@U0oYK1 z#}dw}@tr41R+8Zg{z_AI==0`|l{ItUuWw}h)a;~8wKfK+`lz0!69E8x>23^NPdfe- zq?8!Ci4ipj1;ezrhUjPw5eY>xi~)~#9(e8+oGEtNn!Ea&)?@UZDF9lx?u4$1K(G61*GO_oqO8)S~do&ym z(9@&ia@iO?J{`MVrC>rPa*ze^&Z~!c?5@`tJ1LWJ#K6!^6hO177*djz=i}DzE@aZ2 z(Q&k?X-;na-U8PA+nW?!T!3yGr@At+HpQm^l$P#P)|7k&;0JMzu|ub)jVFHg-YU*> z1%J|aM=^90(=@o{dkYgXzwxOOzPaRg9Nc{Zp$NQbE)+#jwzrOo59>+sIT+0BL!Duc zRkzYu7o@W#L{Bh6cUOeArf%9Ag6!H-&R6IEl3iQM64GD!nk12EW;vRh9&&PQ9 zTbr1EVIGsF=iv6((QFD1w~bMSK75&OqLKa&i-$eMMoy*|f2Nz%bQdW;2X3zeZ-x_p zmWS!{^2nc%!Gm9Yh5DNIIC^ioi;1&G(Q-1_-y0o=w&2^oL-$8VFH>m@bKNjRd%EOn#T8ypfONNHk9i$=;*ZPxw} z4(W`__YvxjviYe!38$D)ltWKXG|`3NRsbbE_pqQ|EQ{+_felAZ5ECf+Zv0fa(`S*UV! z-0f8b!fYyUEX>JB31k?32S`wDDh@~dZMwR=iD)>Aau!a_SwVu`Z6^{oi1ftYd881C z#H@@4W+}kMi6$ilDykRk2?Tvtxg9;oe&H->nsIHP6{Ic^QlchMx`JgcNdg}iE5OWz zT~0pvOYKxyA55F?R3ou{0;D17>59aWjkzETn?p@>Gdm{`ise~)Gu>#8cn`F_F^D2W zvY^0B1sI>OOQ&pnYBRo+;KYa-JFyU!2~-_yh$AanSjdzM^Z2B^35P=)^sFBaBw)8` zG@R^U!O}?y#~dwfK(lMfR=_v~hvtyeIdU{k#rXQd4z$qv?15sk-0fKk#JC8CDapuAp?rTGd*7;L&K2j!kY6xoG>^Qv zf*;-X5_Q!9vPXMSZ3;%zAQ%Xfp6ekk!;Kyt*qse^MyPIX!&~pNw%}gHNmJ4jGH9p^ zFm_@l5B>fY94=cNeQ8Mz6{Ss#yC5Uk(d*LyM_jW4gy{^0UAPn@H4&u{0*}|phR5HF zQvkphZk)=xJ(;}n!X zN{NuxWy1APoaWRWS5~%64k>xfq;=1QblW8bun3V|}_| zl0Pwn-PLH_DJ@q_f}##?LzN%Z^Tzu9jGvyJOn9*NP~yE60qDZs+U-SCjHEuR)J-N9)Nv1!;l%)6^6m`6prf}`5Iph|kjgWYW(a{=W?~Y2|dF2qh-l!lw+r#9UmheMBtp=0<*T;1!Op9td z(TKfNQOxTw2F{{IbrVGqOqny9j@A%s9@@s^jDlXZDek??dVJ zB}`KijhKYG!Ze)-aPoM7nyMC@PCFB3y|UDlaaZqzHlCp^}>JVnUI1 znwW-Z?f66AWA*{u{w-STe_4lOK#5CV&nWFQ2sx&wWQ#;#Yx` zlDu*0y#J>Pe)y$7aBK0C?0%!-9PvJEY{!xnh_4a)R@`t!LMt~fDcYFpOKHEkp)(yV zff5j4=n^w3abd$||C=b4NrV^~`zxRdSRKWLWEJwMRW&D4wXC|XcRBos~Ppa@~5ulMe# zqVhmJ-V8UPU<6O9gQd66Mo~E(Y8L`357x8mwQ~H~o?*GvSm)Vz64VzDR492hur;Q| z1kyQDact`3udV;-l6+6=w)0W~L`)5bL!-IAlg8Q(lmXmdQ#Z&h^yANP6A9}mHU&Lu z@X6sOE9BMdZc8ai&+?F4=o{+IZXhfL-bmCjSf%J4z!R|&0Qo#$b8z~~+h6#}omr_Z zYqC=UgiXy#Kn}t4OH|s{zdT04x>F4E&4X1l_(ZZ!^*@#lNW2H=#43!oAb-R4WfV|4*?8Yz^>xwbhFA@5U8KHc_zc5JE=wJ!}cps<)ZaUp!oeY;&n&`(`RzRlmN4VXJV*pSe0K`{?1F^x%tT4g2Q7rmCak< z)#Jjh>Ys%o*7fojf4xtFp_o8lM6kZpD8VX5&a>QQ3UPDirRVS5o9E=wvZlf}s#|ks zrMZKnoN5#))ug6BLMQ>g0sO3&$01|5pUiw2_%1LP11qJL&L%opvHJCY5B+}sl51UR z^nr;Pbr;&yC=OecM8T(FU@xDR@t+k&>Z7TvfiD4H#KesU&{%h*bjh8&YNvLV)J>SB zcf0NknYJ%xqy$rSb6CDzJJv^28%T1tp9x0#vpFyD1td#RD8@qyPBzlcpK$Q%FSh<5 z?d^}}UXhjBwgBssxye}B>10d71nRNe*blM38rzBWWypx&%<@x%qXXECU^9|DI=PHa z3h=Oq9Lg`usVw_r>18ixrMA6{^_g8EFcvr;t7PR=mNN{Tz}nG|_5SKcnAgwoIX(yc YAK5vQB|HC?-2eap07*qoM6N<$f>Hc?bpQYW diff --git a/bundles/org.eclipse.passage.loc.operator/licenses/epl-2.0.txt b/bundles/org.eclipse.passage.loc.operator/licenses/epl-2.0.txt deleted file mode 100644 index 6afbd4e5f..000000000 --- a/bundles/org.eclipse.passage.loc.operator/licenses/epl-2.0.txt +++ /dev/null @@ -1,95 +0,0 @@ -Full name -Eclipse Public License 2.0 - -Short identifier -EPL-2.0 - -Other web pages for this license -https://www.eclipse.org/legal/epl-2.0 -https://www.opensource.org/licenses/EPL-2.0 -Notes -Secondary Licenses declared via Exhibit A should be represented using the disjunctive OR operator (See: SPDX spec, section on SPDX License Expressions and https://www.eclipse.org/legal/epl-2.0/faq.php for more info). - -Text -Eclipse Public License - v 2.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS -"Contribution" means: - -a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and -b) in the case of each subsequent Contributor: -i) changes to the Program, and -ii) additions to the Program; -where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution "originates" from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works. - -"Contributor" means any person or entity that Distributes the Program. - -"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. - -"Program" means the Contributions Distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors. - -"Derivative Works" shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. - -"Modified Works" shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof. - -"Distribute" means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy. - -"Source Code" means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Secondary License" means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor. - -2. GRANT OF RIGHTS -a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works. -b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. -c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. -d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. -e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3). -3. REQUIREMENTS -3.1 If a Contributor Distributes the Program in any form, then: -a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and -b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license: -i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; -ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; -iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and -iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3. -3.2 When the Program is Distributed as Source Code: -a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and -b) a copy of this Agreement must be included with each copy of the Program. -3.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability ("notices") contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices. -4. COMMERCIAL DISTRIBUTION -Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. - -5. NO WARRANTY -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL -If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement. - -Exhibit A - Form of Secondary Licenses Notice -"This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}." - -Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses. - -If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. - -You may add additional accurate notices of copyright ownership. - -Standard License Header -There is no standard license header for the license \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.operator/plugin.xml b/bundles/org.eclipse.passage.loc.operator/plugin.xml deleted file mode 100644 index 7f5bc66c9..000000000 --- a/bundles/org.eclipse.passage.loc.operator/plugin.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.operator/splash.bmp b/bundles/org.eclipse.passage.loc.operator/splash.bmp deleted file mode 100644 index 87d50b4ccc9bd0d67ed07eb3cbfa1666517a0002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450054 zcmeFaWqeg<*7rZpo9E^8>VMDNGj}^}apLaot|Y{Tgt(A|IB_Q-Bm_uEf;&NqyF-f> zheEMpr7d-%I{)9^*E!d@jwAz}8ogIPYxbspsv;Qzh-fBz!=XNCVw z!2iDdKY#g)0si-Y{_@|_<-eT2^?(0z?En2m{-1mShlo)IVnmKIP!Ge%QHGJD6)}0V z;Rq2m+E56isL^T>J=!RG%&-wN#z+~)F=I3%c8sxFj5UrGB5tg)942vNbwvDF6WuY+ zBz~Mpf+9>4#_5Q}ai$|g(m2zkab`*5bw~1evk_v-cyrB|U_M0|DHF_x4~x_ZBgNE- z7Q=+))QOg9BS!i}OI7GurmMm#UC%0G#K_dM(h>UBnQ~<5TaOUg`qo-uldZ3a9DSP{ zgJC1rz(zf6a}89HXJD%qhPHV^M)o5_k&(S3 zj2()!V!E-z2vKb8ActeIu`)~?ia#QEwqQcZ! z6=u#A>QQOtGD6HSbI~20Z zi+5tXNP8V%2knXNx*$I?+vg@^)VKtQcy9}iL9i>svArugWmQFedq^y?U8em=Y+syK z(Bcv}4A=pD9c*6^o7NQ+!||>Q?4UidU59#Cigu`XP0@}kYN8#df@nuhx?NQA!-#f> zdD87_q8$QWU9{s=CEAe>E86jpnrMfHR}<|x9YM6?p^@2sao?fdlw6VR?P2jZPn{is z?aPa+uOC0Tv#0;j^>5eDXy97eXi=zGL^0f=Iio`2_Cf&ZPbN=3* z{^w%*iB;=2)wB}ZWoJgskbyr#o{VVGXc{uGXq1KwlHm;*JT#Ia1IQEG|KOfXvAIis zM&X*OCMa!Y$ke$9uPCcqm|HU4)CpI>_Qm;StIF$pQ}bZ9Fr?o&ak?`i2|0B8lKe7e z$W+<+^vU;>m^m-XEm=`oGniF$G{b%$#X<4*2lSyY<$dzY}PTD-TBd23zmtxuvhy&g_d$ z#VL8SeIi6#rrkAYsHApdWn-ID0GydN$AHy&<;<2@S5(z(MGLi#Ne!G_Ut}@$UysON1NwKe_kd@_{2qR;+t)_4)IIVzxe3myXP*R-mrCj zRdbD{`^}SQ?!I;L(w>932X6!%@3mGQAKiP<>K4rKzIuAq{fk$S-#K%BUQ{aBKFc=} z7(c#z?VGFCfA;^g-Ewi~z8&p7IGsN^1uuC0$eSlt zZ+P$e%`1BkHQIWE@L>CUZ@;s-zWu`XJvWY>5ZS(W&VonRZftFwb?v~>hnKH`?Wfmm z-dNcLq@UfmZ9{oOr+35`Pd+*_u>9DfRbPMl*~**}&h|DZe|&m}`6A6`UJAZRR7izxm$ftF^9y(CxUb%)$+L=WPG- zlTWK0d;odKb}u zju7pOb4u=CzE)}OihNT;`}JcdINR$S{l5MBn<{G$Kz?8EqC*Q;49#c)%x8zj1Ln21 z-nY-3hyF)i@92jwr_C!|MtU6bS{pCqJ&{x1zjb$}ZzM3juDs#askf>v+>r0;>bIzG(liSJuy3epW^C_^&t$s2-o}f`^>bTyZ)@#Ber4a`owMfMed_{X z4!ORqW%iT1_turwLCFK`GV`TcYQ2@`#T|Q(Endyo4&5$!GFBd6e*8(hdkDunh&qsv ziPOHQRL=HIRV|$D8!8&lZQhAf#LYKOiELk)Q+ng*o2-y}|H2jMd=0ik#&fp6bM(ZG zBX6Esy8d=*F!QQ>PE^-a{>QZFTdmd4pg(bo=JE z?ov}{&h|$)ZqA8I1KXkYIoqMG!FGuM#d)PVb$g>n=tmD8F+*lw|B@ri)_~--j=qfN zTiUt~FIgqBz0obW!rXOXW)ZYHkiLJxlKuTlS?5f%M+iPE&h{A=uJ~GD&Qw~sUO9Ml zLv35T|KxeGY4r|%)z%)3E`cqcVfgz6=pIPTd-wb$X2sz6{>?k{qElNuLO}1;#nlYy zZ>(CsYj!W=IYj%%4<3nZhvo9k=U;4T>O3^K{L7C%skilFY=`D=u=SDfE;q?6$t;3y zUo>^v+=wLnDN$?XetGY~{)Ei6#Wi=&o`;^VwRA^~74HsWEp@hE6ke0D{q)dgu)QZN z0c>xuM%h%+D)aWCW1H({;&ez>&P=y6m|xv@cs&fCX_fcRUxp@cw)g$u<{gpk3!+l- zwgNY%-8J~L_ulXJkJe!Ox}xef2mkNBc?wVF?D{R+>N~o9B5$8Od#HCY*#6zu-z=M2 z0K6Yxyz1QRJ7#-?aj+vH-A=llL!Q|FtFnE5O76|m=QP+3kNw!{^^dOKd~oeXU)nSX zc=#{}7Oi;aR}E0EqE8h7jL`FBp9 z!AqUoxE1%nlX+w9#yjUOqPkk=60p2z28i_F>f7*M7|e03vh#-EXQ#;FqDThIu6^aQ z&AxkX|DJh+BHQ88%!x_?%puViW)$w3J2)KMA=l@}r$f4b{n=-4ZQG4jM()Y%nLDtv zb3RUSJiK^iUt-p~=Pz@%KfZZ;ZdA&HD{sS=pJDFu?uE;J@fk;#u7O-1j_n}%g`NAB zW=%h^V9DWyD{zVc*f-V9ggyt`=SC#s?c;;nch?lxfb*!L!h}IGkeIc9-e7k~+`S8z zuN^$PAU*?}zq)C$|eqWBy+@rTjEf)Kx-;7+veDWTE)698wf#q6yohXvIkTs8K7jxD#;xtmvmxNG z?mYxzzjN#aA+dp4BTtZ1n_IoOe$-n0#cR3xz0&u-ZX4G-1b?i&fbcZVl_ z^~t9-)*f)D>ukNj_P39|xw4>gsIu|S*$XJA0`Gfz`p<9QBkFdLd>}dJ>Vc#9^k(@_ zW^6}uJMV9Yp$#hrLY)bCeq@zX@z@m@^Z5r)njHLifBTBu(g&BWLbvk{8J37_7xI7K z0|^6PgYB~SuIg{s(Ct9F7}Vb`E@INXaEWTET7^^)o^<=Ks@tL1kFFYmx^DCi2aWsE z@+<7T{u8!0dWAvKbFd@fB-dv9#->^5gwd#_?jKmTd+vZX+Z$X1KY8@H%GOI{`_8Vu z$2ad>-hUXLMx$#GYN>d?c=Yx=IDY#0gRbyII4vj;vs&uF)VwF}-aof}&$T0Oh-~kl zl8aY{(*FFzC&=;8_V%7nAHR<}DY&|>q5+VHyMmX+o5kaIZZ$gk*I0R=mI^U{?a(pE z=FY$v4Yq^lsAdB1O0Yw^3v9o8Z(&Lvklq)U-eBi50^7lPlu%JBogEMjo-fTP`sC4j zOQsh5mTaHp9(rV88RI#0y9jpV#CBr4u1-kmZ~y)K+hM0~pR?e}{f96^V2rm0MgJ#k zS1e6^Hr)>FYxlR;IR|`zZa}U6_T#J9Z*J}4U`N7gsa=y2m*$nBRLX32;Jqh$>Y}Xa zb@sjx?KQUE@M>m<#Y49vW(CI#rcFadRb)HzR_|AwU$1Y6qs~u7wgc>VUtrxYvjbyBW;U9;xn zW;C?iIel(XN}dGv-%z)UFekRt+9g`MB#a$U4IDtDyV}43oC*U6{;+G8MlfXXkm$*b z!1lhB+-9FiT*k9Ro9$5SH4eVox*ZqG&78H_&XBHs1lU!fK5zh#*I>KGDd)Ln@;oyK zP(lT?b+VnqTq6GuCcY}cUr2yACy$5AA?cFuIWHq{jZ{`Y3PKy@bORi2Cn()p=6&&Am?zarZkbPSWh zgc;pz*8n@Qo!G8~xyBk*Vmq;&W`(Kdh7sFo4&-nvm}u=1tzCMqwM(d_viPO?WJd60 zNVoGo87|Z{5@I{Co!Cw@2Q=3){oI)Y#C8p{9jBT$JHPTgemi+GSivMNT%xs0G{2oU zw^I+K*Z_%Kljq_UV!Qe*cU2)(8X%?_+B_Gp5ZlRbS55k*8Nb6%gB-?ery0L;&&>at zJ{j_4$djRUskAPYOLtnkBuaPE?P9kK^~s2BkiuG2aRa7*zb=*fWHff@P$_n{PY3CC z((TG!_Jq!Mwz(elx2smCYN&Ue{q58PsZ~^^9!Sl-Q-#e^v2iNx%|ZL6(w=&{H(;VZ z8S>ketCraIsnp-D++2@zJLz`P?X(xRFmr(VWT;O@wM>=vUD6sCMt(c_?V`sn=H$1N z->!6K$de&YhCCVaWTbvb(Sgy_}^u6t)a` zGUUk^+A4SDV9Bq$HwVoe&=&2uLb{!FJL&e63FaxoD|R;Nm)0&}v@ehUwKIM-x*ypo z^+1XvWwcr!`6x*0futTt)1+}`N#k`#@_6#w$!{mWo&0u>21_Am#_t$oaru%;vD4Zm z((Ov8Jx5Mx?UK$t^+>nV%mJD?Kr;tu=77?5C%=8z9XhB7l6oMi2a>ro)UJQ?z2q_U~bun>1g)y}Dw$_uIgoA*m4Plh}h@?^-9Ay0-p8QL#ZXq%xv z8S0avJ{c>%t)Aq-XotRarW{%N)+0o=zO`1^Wa}#;N8g5(O?4irmP)l$tzk0Q4x9GE z_9ER*x}9`8>2}iXq}wNt)|Bh~in5A|0lzfkcckWalv$^YH`j~_=2Mh0jML8SckQw51q#j6}4Uo7<^JHkAOynp7Wf(?|GK?Ip2yU(G zOh~trZr5y;p*|TS9m|(Ux07zCJ@wdB8I@wEc{0N*cA5hz*Hu+RAZhKAhJYvCPP$zw z+M(V_x0@!8(;Z3UsK1^1+wBUB5cV3OVX$kQl5Qv6PP(0RyH-CW^*~Y&q(d>^bP0)x zDl~+;#wqD`((R<%6ULb$hEwe9I_Y-4C>4pO)6TAt-%frz?UzdP+s7EiNTD{lopd|t zcA7ab-PnOgu`xtD>2}vDb18JKT4EPz<^atcFrk?PG;@Gv4$#a2VFeSdU81#1R7<5= zD%Db*%T1jt#4wX)wu>QFPPKDdyF_c3RGpBtc4_!dNLsr@YnL=isQi>_sZ>j)S}N62 z)AcNcuu9icNp!J<%5$ovifxb@O^+I<)B`E1chc>o+ex>}byeztq#j7BrBW@`v)LNq zB}R+2ml!m^oocC6OQl*W)l#XJs&kSIyGZk7Xr7FwGeiCD)Zb41?bP2+{q3|jhiY>@ z+EY)})6SdQkx+j->ujg~cJgG@_T#{o96V@m4%(Z8_U53yIV{+I9O9As+o`{u`rB2_ zGn#G;%^c9>#;}GN>XV^98JZPFGY4qq0L>gAPe$}%#GGahP@jy-iXl%%%Zi~s8S0av zJ{jthp*|Tt9Fpch@`Xz@2U1+Pgj{2>lEx`{GUUmSCqteLc{1e5kS8PhFk()g40$r- z$xNMSiQx8&&Ln-Jr7CFVfT7*A;X>MLNetR|Nf;NVJ}3-B!$g&?ozu(#nmIr-2WaL% zj)B_10i4Qvq>4w{FV&F`2h&JsRv66+qgi1zD@+&^hM{3JD@%?|bX>20WQ?!J;-AT8TZjT;gq%-7QuxT%B^C|MUFs;5vbKwfj zZ&xd)l5Qv6PP(0SLW;xNk<lE#{ zNV=UVcGB(HiZQ=5VE+zddfO2@f6923VIn^|w=h zJMGOudvnm<9HR{*M{91zp`qbvztmr2ztjw4+fw(yn&7BH2d`8;%aq|e+f(I-rcSgN zCTO0FZJwc8D6N>^-;=4Z^=u7_ZV!vEa`G1^gK6iqrylw3l6t3gsp3LZjr)TpmQW(Z{9)|%tfKO~!13NhXyR*I6)MVU{&utE@n%!T zn`?%0BW$$FOtbU2c=$N~$F7n5^wUrKm#<0Fw<5N`(6hp3hQvO)epBOz%TK?1`gBvv zY;C*~+ex>RZfBPJi|DuCJa>Wp8~^c#9{~9copYB~H*K6f@8(;I>v$A+C$_)1Y=;T+ z#mArUpYruLPVQg0d|OxVi49x6_~>I!__fu|8h9tR6WfXHFD~0_L!!U_;>$aiuG9og z7FMK6t5bWYmHqJj_w3((^W|_!Bd0n`BvakQ@z$Ah?5Dh?eGai*|g!8Yd47PFEraVsLt6An6H`9#D2AimDttSuPdwBEq$sK#zQ?da0Y#X-&Yt|!PpVu!BlflwdQx?-b0=M)IUO#j0 z@!fmxzkC1O{=;*!3;ALto)pWs-8g#=_aM$6JkpahU2K3vj)EzR3g56D1503`fBfF# z2RCjW-?X(kIvIu3a_`VXYd0X)w$7I7szNQ5Q5}ZN;k6s?UAqor_R-DTr*`b_PR|G1 z^DJH2zxvNV`dBC13+y~rH+5Wn?5Q^^G5zS!re}#` zL!0KNPva|?8iJ$G?%IdgI=4Sl-#SYx>H;En^)J44?&3!e-}~hK4{n}4zhnMjjdz&# z%z<1(yPlMs6R&T-cjX$soDc8~-+ORbd0m0IleXV}XvMm>cJD`2x(2|U5e=F4$mDao z_anBKp4e-8pyh{o8kMo_=f3g2k-?QGoe^v}x?8 zeB;FF|B&tFmTrr3OOCBxfBWqD5AMACmJX6GNMO6SGE`CsSqRzPzB~;_d_Q-MEEP!iRV7o!_}{Wl>d? zr8`@}B(7b0WA%p98@3{9ZMw$7Kaw}M?o6I&&cQz1Z6~+yo}y>L2`@FnOfW|o6!lQ? z)mVOb?Z%GeESA50@{9)C(Z>$s1^qDEPdtC%NU@6_yAI}Svwfg=#y4MnrTs))Ik;+w zj|J12XwM2;Ro|-frF350+}+FB-Zdqg-ShUFr!?4}XX3DXaGBWk$6pQKtK~BqWV|cp z$yB%o+&FoL-ykMUaC=wpg0y^g<;ICK zKb!647Oq=6dOrW~34d{o zzDu2! z8#*-D-W?jx9{T9sgW=e|uB`5x&%e-qaa_5w?@*gtFvB}%`@z1&?B*kb%Zcs30o!|v zEBR07haY}8f9UA$rK_OZKbJcb9^Jab9u?U>#lRZc9@ihdb8C6y%$ZZN7F9L8cUy7i z(wb(*_7vr958t`9vTd-bsWEY`t6xL`}ZzeeRj_Q z#$NtuXtRCKl9l|4=xIN-V-K)=@$fPBZgus|Q|wV~wlAry=TF2(ymI`+TYC>azVj}7 zn;4j0sT1k^;%~$DHg~cmEP7?Qg&N=E;Lcr4HVl?Zvj9PaZtvU(tIv zZ=c(901E%U4^21P%-c7uP25t7fJ ze6%oYx`tfmr=0Cy%ioqCzWeUV!DEM)ta@|prjPEcemeIqU9GnEknpZ#dwam-uRoK% zlkC5TSFc~%d+`3{Yi!BJmHkJwb^E_%d!4QKBjJnsJ=2 z|L)bdi`)XZ*`8)dv|o|m!EvfUjzyP=E;iU>N(LVo#Bc7Y14LgFL-qQ9ex8ojSclPInTv} zvmG}-ymq}KIF_$qsxWie($>x1jPU58g)2n1-#vecy*^x^`EludhD@`2$nh2H+I%Mc z47Tr^zmUD=Pe1;&r>DQx(w$rG1Ian!UntMZ_W6@jepGg#0qITlesvb^ELP^0eWmPydq-KFqRl<6vh=!g#X_%4IK&OiGc zeg@lHd?UVi@)3JFj-YzAgHMTxW2qt(20MJ1Wd)U-hd}hQf(nu9Eazx$Y7001m%`zND^OJBU}s5RTsoM~ zKJN3f{q%Z;KX&WHnOaK^4tAC-%bd<$_S>(%ZgCDI-7ez&H)A`z7xq(F)836XNDa2* zv@JQ4-7o^%Q;ltViz+{Q?=ia*IORy^3D}-yY`0)~C6LZ;yLR#nXZy|b(jSTV4>xFl z9j7qZ7nLjCgG9DxnmYXWgS7k{|02q~f;rNK#G*AeRes@rY3O!t4dGFgSr4pS*A|?;Qs3;POq$PDz^3bRoPzQ=nGHg+pi_h z2mkF~wBpxbJ65E!*N3z&wRF{HI~<#hO|#fN&&&2wQ>R9e8i@ z40|lQk@#?5fA)E^cbEp=Iopq~TF-edCRNrRz&`tI2h$1|+Yb&dV^?te;k)mz9X`Ic zqM_E#`#)iOXHX1#O;|ULj{e$g2jNizW%oQU+rLyU8C#NGSgTa*D#Ba3-@9;`z4E%! zT4MX}!gdbT>abXyY|nS}WAYk`G5UGg4&#NrIF38I`#9Kj>UP#4)8Z4szr$y@?i!Bm8|!C^ zNEh?#$4{~ky1u%FvHhIVPrH5Q9JDTb6v_D=dza;vRa<#*$m`VY&8|V(wbVsv1?+Wh zoqCIPLTc!CoSs;_iQV&DY;UylVX6bNzroH&C)?r1uvgyGy+E7o$Cs|ATI#P|OTB&R z3i}b1`h`C)+gCKUGug~u0Y`K#HcU>^0Q*Yq+upg^6rIe$j^s1tAH`V~PS4JEtVm@a z8m*7d$96rd@4x#F&xI6(P%m>2e0@&e`*-h&U&yA}^UFPgc;!?(8KIW?i+D1e?P$*Y zw`||La5?+rmsiwJGjkl6R(9dQVcy7u0_e#tJLYE;0sPCav+~r*_G3#{vwIHoF4AWE)qRJF z?LUw0`OZEllCnscU=}O1xW|n(mP0YK{q$}{wQ){fu}-#^c!#i`k%n%s3W?^wdtZL` z*@4yTTjEkdX$`PftKW8T4Q`v7Ji%N9J95-j*+*%doTQWO9ZG9R)a^M|uIyRprAarm z(S>)55?96Vp{U!@49Q52_oh567o`tl(Hb)aP4ZtU+Z7;AuAe%au5Yakc3kXRf==>N-XD;P!a~+=nT1^ciaDM58B*eix{JN|bLn>Ux_|kR z!d602RVUl8A9;hl@}`Ozci=-_0IH(~eHC{|0Oa%&)zn_~U)&g2f}Vz1l03)l#vTD9_lQ_ZlTk%UJ_P3XqyP)$29~56gPeO(U-r>n$<^Y-@*=O}!Y+qlm_~rlPy~i4& zePp%+@91e{AMx#DCv>tMpL3m)KSw%G)>J6Iv1pHMbO~f^?^Ak8w@#hqZ0E_k%0~9F zq(2ipLbchB>kHEhH1V>f=Vkl(ZHj*&D5`3+eNIRm>!N}D z>k5q4W;?!|w+|g}u=WDphXp$x(gAkRp4iTQ9aKmB)7Y|LQT%vQQMaQvhPe~CZ%f}I zG{%T{UszGc#kmICcP>(x07IQ~S*r|#d5XT32zh?n`p&tm2a@qT)xesA9m$M<2o9f> z4Kqc&1K=B#?<3N$g!MG|%EMtHJg%k091L{MF~5SNlhZ zc!%GPl^yIGH!rK`cVv6d)I9cSz}a5YFf-f0283t2y)!;-aY?mO!%J(Icn{>B!KEVG z^Nj4U;+4J5J7>;uup{BR9gm*gwyVI@iQzrp$o~2X#Tux$cJ1S9m%#R0Z=F|sXQt+J zup=ola~ARbEV>=9b7bYZA`?f(_F{7vzH;a2sv!=1tV`XitR{T&-urDKu_E3}&0XFc zdYyerI6fEKkF6SFPrR__fQD%Qw`@lbBzrEjv`)6;(c5Rv*SiFAsw08r!hf|c?>j8^ zK)$Q&f!x;K!>Nv>*4F#ZS;a)tbK7=vup?o*9U2&j#xL{k?gcR3nf=0!N0ulA3|5Tx zL?nxTdy8uj*2%Ij0mtWMJ64{u9vl4o+E~@1s-jxB&vXkxb3S|Jw+|oJ*#pU{$#>73 zA56?9wu|P>zwK}5KQirP&+^qG+u_5kY*zFb;AYtG%j#RZG7FZ~wZ45?(n9EsWG|w@ z_U`OLejOFn#PMe3zG0i^4ZvMNH#^5WrVy~(;DJ;JN5hS&@C)BEU%pMxlH(mP->v)u z0rx{KW0g}+cH!!lS?|h@=%>n0Lxb%p6D`guSGC}62%V4%%WCH37O!oa&7R12>(F33 zY#F|G3H{7l<}R2SH?=(>4aPfY&pv1L)ei^u-$u8CRa;o zVhF#PlapnL+5VV@_C%S&oRwwGDDJ(O?8L-;D*7qfup?o48phjPZrtU9vH<-w3s=t zEWf-jF>8HwGlmbaFAY3w@eI>uJJyYEZS7+Bpu+OW!}n$dMl-fII{EW9NW2A{TEAte zqG71K;po!UY&|J&=@i+%y{#KdS$U%izPDiYBRMwLxAWlxe32>ee(m7V*K6C>6js4q z|KdaGk1YI$Pq@=>vQD;dYnt`h;}7_4#}=>BO?cAnV~k_uVBaeo`OE?6@GM)m`9#;s?=^kOrjlfEBZCU^64%^n)iA{t-;NYp^|Wg8Aj+C-}{1kKuW5Q3Ypv zlKO4TH(+=66;+6ApK4%@=`s98#N_eacN-%U*%b}8L)B-SJBn+R#3w@7%udN+f0$^q z9e7_++rk=V#AmS_PJ6Do^Y6~~93#7(eTz5~#LpAo%%SF4obAASjd%E6L5ztvqf@b0 zaM~H+nQlixxx&fsp0cVaJ`22^Zs{tr9et0m+4(*E2Z~>k=D;Y9_kXL~@0`EX8WPLM z%wLTqX!XIoN0IH2?)4ra*l|hYPId~0EY2@u`E#-T%+{UkS#PY__`Gailr^0_7n)fo z+hMa{MJl^T;|PXJ-H%w5Dy&O|IWspp6$4~6Zf2)g4aEB1wb}mQ@-u9{1_yovPd>i?kWZD- z_GFf36wVDxn{w>jVbLHt zxpU8+Wvj(`GVozi46V2JEkq%e{Xl{Dciy_tS5ygNbG9Q%Rlf~1c<0;&sgGT#sB#l# zetyXf<-AtB>{p+CzGvyGYzyZ!0~=^^#O9s_8uMhB57Sprh9~mAolie}a$x1!=`MZ% z_|AbPM=-)`{buAE0V}4;e-dUCaIKCHia#+hJuKb8W(2VRvbr6!!j7-se01HWp|&oK zc{0pqZw!e!xMJO-cW$9-{PpLbBRRNyjmElEupN1O{|}S>hN1IOa?}cDB6*; zSz(7)4WW<{r33Ujpa5T9PCK=tS}hw8=E`%IwpLc zpFaNJ(2`ZvPW~lk&hS+byXOzGu1Izqd4BuhWs1Lvt{gh{ylmgp*ulP0A3b;|vVHg5 z0bD^aH)iGZs#~Ye@qbomSUR!p^_hN=3b3oQ9eA&G@Yy-LSFE2xV4oa%z11t688sr? z&u!g}xdi*>FOn{ryFlmPIDQgV$zW<8XFC$8_k;aQx%V#phTpogvAP8o&63Qb%X<$Y z7H1Ukc``%g^%xO$Y4-v41>$pNL&I=fnP1M?&XR$|>WB7JlwwwZ_PK3zDaEV*=$D@wLMkQ1B^i{P~DvBVlu_Rs@O9a z10Iox#(VtmGk)<>1unj5gU9q35$PH^NM7XPSK#E6YG}jdI!`#;S(0vS2kWNTEdXL3 zS0tEggw`BLM)))X>k_wsd|P*=@vaGTZMJi#z0lqhoG)_pmaqJ#YnK$uRQ0U^cAaeJ zg;eghE1h;lp9}*#jyVW<+5iSW0{*o=;rS*G+uTF za_xL%wy##!i{YP?nK^6VUFX^**5Z!isf~)iF)trDBC?(3<)%)e&0cNeh2aA&Uf~!! zfa@x-Yq1@8XAH-}rLM4qj)15t3pdez7ul|sE9XEqIS16+`-p7kd7EeG+{h_2J;Oxf zUC!OA*$_x!4&<}U3X}2f&T6T%ydxmRn;qog14^oEu$@C*PCQtjOry0|r`IH6`+vfA zG(*CxWbeg!j@}~Dd9KEDahdAyZ09ovG+?fA%4ZI6o{NbF+ci!#!LDn@uM+0s!X;^b zy9UfPPC3}Mk{6!soabWlENoYG%lwh{U6KedY`4U7ZJvu)MrM11M+o;Z7G@VeJKL-5 zyxGh&{A=3OH0$58UF7^TvR&l4n5*$z91E#rJ14nzqJ?xmh2R%pyI4-;iv3yGuAAzt ze}??_;r(`L(y!3m&X)+GACmK2Oo;7D$p6-CpKj;bio&R&?JuR=;4t zJi49O{#<=Byp}4mJV9)^PJfJyRaQwZ=hEPKbI@V-u!d0z0%S5<42G2 z70K0DmjWX@A?!s%206#L&g55R`@BTe9MNr^^F--B9NXtar}DNO4DZzjJFaMWGNjwp z-556YSK-MJ+y8U6FRp1~Y{y{s`0-|(=VC%^|6SO=xC@OR8;)&ZaRS%@`9Bcb0dwrB#6DH{GwZ6GIo@@$eP&=Zb{k>$qhMNX z?@esiUb{rPJ!-U}GE|e>f2A3}wUO~(DR)SbTijJWki>Q+&)EdX-(e19siV)s>o?I& zv2V$$KZkBFws2)TKw(F}LKDmc`-AFski5#?o6ly)d+W&!Tk2c`ab1J$ID0rL$|lO1@GyB^P z!TZlK&oHx6+IoQtnWTug~FqxDfZRrJXa+b54U zWT8~-OuGNVx}E*asD1q6lTRSvHP)pP+m$^3-E{k}(E}-3F+BgxJelY1fz;`=vx~o~ z-_9MF8YjPtdk<>=lhMBN_?_Eb5y>Nfo!CyEjDYuFo$cs;JT$Z^%g$Y6R+tEOjUL16m6<^VDcwo8E9CmGs@pLN zOgq+eba!S>!@5+~3`uMkTilf-7Zv-@_uE^el6MU*MJy?=)47!%zo-!EdRA)5FS>S# zYjrUp-HxG=JUG%dlGzbS*r(&d?gQA8>CRghuO2#nU~u_hMj z4qN7z(d}%ijMVoihS1-xJ>!>j`!IO_Il4Vv&r%MnbUiDMah-`8(mCOY?YjCQe;ZFm z1MfK1sHJkMvxL}AY}Y_KKP9&R`PQWp+tqA#L%SEwlMx9|Y!}O^N|L*2CFIHc7M=|0 zcCE<+zv;{YVmq;&>G?mw+9eU}$hDBpuMpdb?WW@19HMAPt}#GH zW=QI9|E2reNw<@3=W`&%5-QKBmdXpMNJIxlJ10*@l)^#T2w~NwU zL#S(ymepbSG|yT)i=e)_**#xHp?YDlMAs;RTa zlrVPsEc4sNxxQllo6YzY!A^d=1a{Kx<4ifv#e~={HbYVmq&P8bghi=%h#E2MWAcj(|lWsS~4jm%NwR2)Sv0XVa?2k1E zQuJZOoIDv(x|82dx?P*<>Yq}xfilWr&79z9xzT;~ElW{i#kx zy*ZfcPJTNV?MO(slWr&7PP(0RJI(kNM?q>ScGB%S6g%~|D>VEB^C`+8zdc*uh6nYx zi|U4=tOW8}H<|dx--FkP96$ET{f<>Tjn$8TBR^w91g*PJTQ2?aGZ)slQzu z^Gkj^`R(Mlvx#9e2a*p8Lo&jkFg!%F!o=;c{{T@dXwPlo2n zs4q>m%{5R(o`J1e&^#Fv$5Im~ox%3J9_~mzkkkXI+%?rGN~zdcLbX(?rHWcz%xS+= zaRrmu@u;0s4T?#uqLjp|wkV;Sv&ByCkZ2((R<%rA|oNFLk&ENa~Z(677Em-L8+ZkhZxv zDkD$dMlHy1C%;`e7Lw-4&^(#py4-2sC9%u>ck6H0x6V}y71%*|HL&B#6WfXH zbr$Z5uyiN36WfXHDt|`bI#UjjTe%Ox|41f3IA`{4vZ_o z4wcT34yv<&R?k-pr9_vtI%B))C}CU*26>hXM~U{F@Y4)zhn4O$b3om7ryfY^fz)Vy z@LPHZQ((>xjF>Qq{nD!T5Z+y9Mjm#Gf0OKhL0Ms?X#hy9`mCfcXzS;+yg z+sFZ!O9^9pp_E8hWSFy~itUW>>>=5uQ4qdBGHN*9)ipe^o!CxnC${UVs}kEsV!NId zr@938iQHFLAsvo7r#jQ*%AwL+Dnp5PU|%KOkr(I-Y?nB%6!64$ zVmq;&*iLNMw-!mRovYj!iRw~FKFmZGR$x0<=`4|{F8S)*Y++z8)U#G$97xxqbhWU-X_0{qB4>g{{Ak1Q zSH}DO&uG`b{nP%x{s&?AUoWw+{r_IF{jZno|N64$-$wKe+f|AkV3$I&V&ur1C{;*#k(7a5;lM~RN7xh?*rz$hOb)H~Nm=GtxX*9O zk|eL3LPMuweY;`_?>2c8EVIU$PZ?tz^QwN-D|(Y()r)>rFXlDz?Egz*yMps_j#G!f{nPK|vGHS!vHEG6p>2U0-tEOrmyj2Z7}Df+ z7RCdI1V}byhUP$Ojg^g5o5ne%k~>@PgCHfGvK6&u(gV7X_FH%}d7k}%2;5s!FH z6>+Z_u!w!lAoewVa30u?mLu{Nz2KL|d;Rw)hrhlI!UOC)Y-Gp>zd9jP&r-lUv0WGi zslK5e_Se(iM^C&$d+O1idbFpWJRj0RV>1qo)2S0Jh6&55S}^}Z?5U?P*cEbJ2D^go zQ0$0l6BQ1O(p0x8G_Xzb%y7%w4w#Rf^K@*_)A4h@_R89jXB}8#U=OP2Ot4HHZJIdR zND-rq66Hu3Wh93R^&=1-oR4}{Kj@`#?tgn#Bs}nL^VgSb|N4^uKgVV2TgikcwiDak z>n&-X49$}CrG;Sa~S-(GwHeQ;+u4!)W(Ek#3j4E_KC7 zZj1`-c@r&V#cr(t`$W0>Mc*dbEyb$xEk<=99ii9tX=F@iiIHQep*@~5WsGU^7!w?) zjFpc_l#wi7!J|@)2K*KLhp=Z#UbbsgE{$Z-yr!^dn1F{fANukH=fA!p;a%44obWFH z7=@pUhjFEd&cF`Qj<&`;6F2YlRpaJ- z&4fCrK7Q^~i^dz-jxl9M4n+pGXk45!7DzWu8EYoRI5Tv%;K)Levxml-u{#;(8RV5R zUPHs{OFq2Pgoi(aK+jCT|BSKw+snW^XFC$xzx^|Ols?Bhv7LjR{B|`BPr4ob3__@= zK1P=Av={d9>U|iq9VYxA$!}+1$8n-1W4r9bNNx-h?Fz8Vi%F+ACmA*0gIs4?9aKlS z7au6H@GdiU#7a^Q^VD(Xh^gaQSSS;mDspxMM?D~~Ap97~!vWznG(6ZI`>IO7GrXh6 zX3{GYod5e(4ZPd@?PcG8j?0x=XsAy{CEAJY#CGLK88xai!V}wtUH1MIo(ywiB+(AG zGlQK`-7;VD*robufn>AWM21vPnEe@(>x}9X<~{YxUSDeBTx#rqw+4V($#9FQSbQ|W zQVLX!*^!lx`IQNlGUp}Kry?NiWiihn&n$Wc;pL7RnDB}&8g=zPSr+hK|1(Mr?|*w4 zcz64sQP~DIq}xfit0A4+@1)xW(GI*5+y7K-SAkt(J8O(l%5?^ID|z;dt#{fA?yhsN zhomiqTnE@QBv4D5JdGh;+RNK2T~CS(J!^SSC>&WxSJ*@7UCcAELnrxkBM0<~7h$6% zeVfdQR;gpnlrD`_Y*h+)$$ed z&fU@qcH~cQ|`tn*)CCCR_p*f26@@JXKzxt>#_+0xsC|T9x69+Dlu_@ zESFWfg}lux&@J;^niX%O2m_leIWn==l95A&g&iolQyepe$Wc4nwUB>%30q>GCWBa$4JzpAw@$Wj-JF%VEPHZQ?U2tR2 z0QrLVK&spr71&Wf<%%71dLi0=WldwQIamYUvHp4pT+a>N3?K(X$L}5dzQc zbBrBwjUB74J?FTE^?61r!XvWRBcj(GF=;-+4TKM$=Mn}15B1(7tM@sMLEVyo514J| zKik%?)5fR9#3g;K8T=U)-cec=ym!WSG|%|HG*;C%BeNZN4|rt)v7KtEYQ{VH?c}#h z7}psuY%Ns=yJX17eUIE}$1){m#Ym!E&pK>UGi!+%FE=_e#cta9L7`J5D3PUa1Gx_K z99#8qszajZ8iD5yc_t2drjDf+Ze6aS3%n+a(dRi?33-X|4Da*Y7~4a8fOp4WEw=m4 zvi51W@-8)SNFHq*FV84o-a8vjpfuhk=?=Vm{$rE^?@G1<@3CWzwee26opd|tcGB%y zgnzNwE=_t=S~1*d2h|zaQ=H?*cYPs=cBRJ-D@Jer)8z0f&;S;PDA%FYC8|p*9aMMB zH+7n3=2UO**XJF%z$dETCkjUvirjnh0`JLvUXqgU^^EBCfPfDN-sif8&UFa^-sd<4 zbvp)jI|Ovu`_H!X>$LTqW#iLf?cHwW)oAXPG0u#ucfPENJ2R-OM!cer#z=;DP@RSS zfBzG;01dno+llSOc4GUVgze0Yk-^T{E_buDi80cyNqI&tru8?t8zU+9`4ZTDiuV8o z#U_qugJE)Aa$tw;gL7N z3V7G*ie#?4)HW0L%0w({l9w_m*bc(Ocqg`tFxSYbPlozrs88kv_S;oXyGpmqLt|9E zFzh>JUA?`zvYX zDcl&jD+Y>PzxV0nDZMkyT&Ee?%V3vkrjidM`RZ_BB&tKMPq%XK_KJ|u4W0)g;s=7_ z2ZIvCz!m9wV0?do1o;JiF@3(#y*^R%y(dGx1MfZV;XQ5=-n*THyPSe%I|O#x`_HoT z>#+5mY3(!9${TElbZ@b6$C_Cg@7hIGNxDb8rtkFMuV}E{>F=-R8QOBZ6WfXH?()1&OPOKyzRA%or+eH+{IQ);4Jc4MqM?w4D6mz%j{7^oCG3Z}BP?p$Eu zT4?E3WaU2FlY?EN`kJXlcTc`0#VI*ht~j2R@g4`l1MjC+4BdX?^zGxPZXG*`*xNd1 zj%%nU+ie)zy;^16-fZsPWagGV!9rZn1lOHOcT`k?_mEd6NNoSB%9eq2j~Hb@Y!{Kv zbJFdk+ex>-sJdM+WLQJHJUvFic5J#4=bNtvcG-_~|1#CBr)3(0mpt4tN!6}p|fF%a!wyG_|iiS2T43~P*m z8)M%6q|C;@+}srlOO;lPTsD=#US#PGu-7^VFtGOrB@D=5Ul^LSA|dCE#jDP)d;Ph8by4q)NIgyJeX79zDj0Nq1s9v7I~_@?>6kPex|D+|$m%&bHoQRaEO_*JMRQ z`&?!|S9EnFGc%j~@8p#df+z8|a(Ng51I9t@kZ zFg#_^Bt+`sh}6qF_vv7J*c9A35R!;zJve_^yy4u2?Q=XPb-RUixrEM^rF(}%K)ap) zOk3YJ8=n>{uVzcnCJT>7=yo%=dQ(@F3D{F%N>-Ch4Nir6kvo#mw4 zNw<@3e{prYI@^^_JKEaytlhFUazloTc7wjBd0tazSh!^w%A%chu*=2MB1<}@q|+iTixzj<0jH_LGk?i>h98VF6ie?gt? z8@J8zoYd_e-sKiL+a-9GQ(%W-Rsw7Vde*_R<<9h<0>5noFyb&=mu)m)Lr@dWQD} z#V-g+lteoedqm2j$f=8>(w0Q0Z?0$(iLI9Z^wXlrX}A;j<5>?bsk=>q? zy4=G$T|;I$%WQY>Z?p4lwe@MX_G+>M+a=vzXXXmgUSr~1ZS0gZ+EA#d@`f4x$k+7U z{~--{7x9kyki>RkySmwqjZaP8*C!eQ@cT_~?agyL)^lV;NMJM>xh8bhre!I|a^k@Nc#E1>2jfy&5I9yVse! z)tb82m`Y$rw@kT_J!~2EHLB7gCPetFdfIG{A8SHvC$_6gchc>o+h080j=_)Eh9gI{ z;kB}m3Q2DjBzDNKg{UxO-0RN3kSQ{CVoOl5Qi(b3vS{~)Xm9t4>5SG*r+dLw5 z5H?G6#^TtlCGpuy6LOX%<}OdlTb`7^JUM@LR;fsDiS2ROxD)pS?+-6)uzgRDZ&bH; z5N+2xvSkI!BLw#Q`PSsHA=xP9*&#&(ZMvt->q(@C+Cr6RXJ7}_3s$BStV}K3T02vN?MoAK zA@3K(X5m>6uDmTidhgt&-5v9G&FtCPI%j)x*S5yaP1P;Svx+-B!kQ$ud)Hfe)>(Me zn!8nF?UIQz6YXGofxfMV<<44VpxeD)8lz#$IR5=rVmq;&*iLMJk=ZVZcBb2vX1ip_ zaJKUuQ90Wo+QIhBkm=Cv%xq_dj95jjcMF*p6vx>PLq^5+M6exJ%(N9Lg+m3^7kBRe z`qR%udc%{E*dC`~`$KiMtKBJ_{Pg3GaOOe#COh9+3-=l`CDobm?|h zPSw%no^N2Qz&keM){5!ar+fIo{@rpo78@(W#1R9KS(KPKju53Lj&e9*UqbCDGj$pv z%1xchO`V5}3R7oQm^ot?6){ATYv)u;rCKW0QeUuIs_e-y-L7Q2v?5ipgPt^M;DkcA z^W~^A+Y3ArXIQwavt7~pSO$B&ge7>Hj~z|8Pl0VKvxp>QZU!RAGcdszaHf zeW{^6CPRwlR8~vH>eS$W%5%fiyWCNOAhvVJ6WfXH#P%1L?Yy~N)a{nl7gbF%@MPr9 zcIfsJhp-BBH#TP=-&E6VZ}prsH!yyFNMdhT@&d3O9WQ8WjLibEmnP<|NG-g5`rL4& z{t0YPRInY-dT{mm*p8R|@rNJQS2oWuajuX$WE>^18%Vl6akQbxc6n%+R7;g-LTavH z!s=9FJF#7`WvEYv`ea_HJ{euQU1Ymy{W~hQvj#|6x0l-llv_w_$8uC`lc!!t^_%G( z(GwIu4{Q&g(if51KRJCcI&)#HLbu;O{nl_`$91rM33Pix&ce8?pT~9y@85qvFeR_T z*s09W0g4@9FE+4C8e_y)FsTO1yrv(fs|_-Bf;q9B*iLMR<*rifEFWu(Erxl-jWw3T z1iRa42il2s$2gPtaV80hFijYzBNE4%ju1)XOq0f$C5_h|$>YsNh$-XEHDiML6lG|6 z>@RSijJhYI^xNfyOGYjCb+WxmZf<8yGSUVdYE3eJGkqfG1jWq_Nthp=+!vA3AC)$M zrkA*^MF}~_R}N`|{fF#&Og3! z>;A ziS5L8V!Jx(U$7p?5!i0hcv~miXV~~+w69XPYqGt~J7P{?+}z-Vd7;U@lTsE$ru9c> z48~?HOE3QB^Doud{?kua4jx-qP_rVfc=^<#Wm5{5rxh*H@BBL__lb4cL&DK z367r|nmB*bl)lK+1+sL1W7P%?u%8^-ydr)2inQqx*i#FaOqsSgDQ{sy&R|?te@q6R z_28;n59Ha+J7)Prc6d#i=@HiI8r%A)$$gw#3jLiXG#^ z3iWLgM;qz%+e2T~!FKZ7iS2@Dr+G4hGec|_U@n3k`7mI|_1}~2yibNTK%!L!0|%_j zPm6srY)Tkvsl_hQmFSbflrVYwJb99g+$Up)MXA0`n6K_1(;XP!6OuSLEV(x#wJ$Pl zK~%uD0|%IkZK5{qMj17Hx!3?ART2}iXq}yM#J{cYT?TQ_jWWU`xf2TsXE7vZu{`OpHP?!gs0Lcdqu(eBI zd#!75r(bkeU~IP}-IL~pPw9npkIB%mP1cpxL#VS@oSeT%QtY{d@!12hnG2%R`zEL1 zP2v7!HQf%jw|h;(Sojv#kY<-4i1vDXI9u-;YflU=>zSM)vK@I>WHJ;xcId$FQ9^&a z(vXqYr3UKKwQo56Ff6;V1^JL_usj9V0{z-#Ow~tq{9nu{` zAXB0mpp#h-q`cRXVr;uK0n$!dmpaRLGQ&HZnI7PM(v-zh3qC*fMf0RWWt|J&-;+)}_9p5bfBcLu=s@u8gp72@lcQr7Ck* z9@XZq!-QM4xmyhj3%43wQETBgOt@o(TAfB%y4ML&Z|SZpJTPtu(J(?-!GX~ZVmq<@ z#p{8T*QF|U)6-ykL`b#7_MWFA+acYf(icIu=NminRvG2wc4-JCEcbTr$XR|-vjbwf zg5u_cB=m$OFUu_x+5X9U?}Ow6uwUZkBd89!9+S}*mEH@mN2cQKpeHQpp86cf)0?)n zx`#Epg)}+`HaPm%$)dg5+H;1bN2P^ZxtYtS@4YX6loiD_(TmbJ2zPZu#*^mB2%?>8sWR$`?ZoyMitTLRfG{geoF@YxBgH9}vt8Vn!>9aEm4!zk zn*)h*DwZ!v!`qqVE)8#Qb`Nd$jhy8l)fpJm6&%+clF%EME>ic~ufOh3$m)wpUl5ay zqZHBUy-`!=Pfnc|nKBn(4^Qe2O}KYSZEucK8@IK%hcvkcH8=;bsn^OMC#m0DLvs+=7c772Pe!9 zihEam-=&iqwl=v2H#i5@Ir`Vy`&Qd{S6O>jTDqelv&_t;cS^4K_JO=(QbOJY%bW=o zaicWmx62KXuj)(N>S^uGfwnGUJF#8enIYXyy8Xq|?NV2yazj1YlM&diXYE*Y0Bo1= zj*&9LD99qWcs5do+cGNYZtGQH?}t70+Po)0y?6LW%?gMCsIR|qN@Oo=ncmopxe+OI zBc}8qB(0u2CoHKeG+}mdd}mNBo^@A!FYJ@+w*c(*PBPf-ysK44%m<{#qB72eFe(S=#==AQe z6vOy9}veo>EZ+|(fO$B!QG>tBk7mfnP{)#dg37cQS2o`gGbKc00* zo$VL*9U90e>`l&@9hp2YF{>{%Z&7Z^#>S32=PqcxEKd6}3bV#rq>nSjhI+h^s+uJ8 zs_spfLSNIPy|6_?hWvK&+f`sEzkPVH|FPCC!HvRfx9CL=1#PMYZ>7TtZKkxjS}W0^X%wcN0gfV?t4tj}9x7HpLEX zK+B>`_-4=W7OzPg8asYe9}b{F?AZ}XxD)RPcos|>jYps5^uv1(O6|Nd$C*zZV-owC z!ElC*)cvSlNOk##WXKTPiS5L8w&@bh3VTs!g=y(_?G;Q?w~T?kQPaD?JG$J(imF4) z+bE}&nmRM-&hakoi!D!vgnF;Uuosu0dNjAlgm1*=cb?&^XEc5N`4_`cx+6TH!95h4 zH{n^g&OSHW?_9WC;p7j+j-K{}QHH}AG8pY^_t%#-*gko*A+cQp?BvOiCqtf$lJKgr zU>cKT*y$f=o(yBVY|CJ$A#KZ@+cF`O+oeshWxPv`?rd&Y@6)u9(izyK!@yR7cVkR+ zhk8f5yF$Igd!K_(PBCys;g!$7izxwLa&z{_Sc<=Jn3wsal>RZ&6n3=6- zojKkDU{4!oHbr)0MA0rUM`dQaUihmM?X^Vvq*3||?BvO4;GOzps82>E-KkGzc+33{ ztJ}4tyUKOPRF=uXm1?fLve$iTaOn&)w;V$|0q;z`JF#s$pu6Ezz#3qG~(sj(>k8*T9C@u0eHnN^B>#6Wd=@-L7v9 zuxqhh+80}C%UA*Lw&f?a@owAlPKB9Axv6soWHVFmM(B!k$TfCgoinVuI^D{>+}69o z&Iizj2@iV1t5FN^T#gDmZ`>(U-LurnqXeT2EL^9XgX+$OCQb$Le2g6O4DE6a>~i#N zpw+RrNXB@}^zm4uWIlDQq}by|NnnqCmAA)WKA38T3^u>EK?zm8iW)t}h=ZMUy9VKj z?ZkFs`-{$YCEl(0ICqA3j8ZI^Xq|2wF|qR#3GXPX!kmHeE^ne5oj4Ew{0j{2Rd|=1 z-X*-t%`^FC&TJ?_iM4x~&Hvxtne^6mWmou5q%4)yP-gQ;zWzPFo}I)-D7j=SwqrH6 z8cIcql0~tRM5;-}>TDSS0#wRzGRh?5$~eg+{~!nu1VMt-F9?uHs**y6S^MmJ&fT|p zLV`?6@&Xnv_PeAAc=EmFwfEU)^>P2S2n-jw!o7KfHIlv6hrN}9?#e-Dc^{+l=*hND z-fJ#mcMYh%i`_N2q!oW0gO~UoLBC+SeG4Z~CucSa&5eo1jqw^B`(-ih5!jQ9AB&%! zD9s-pNwIzT$k?76j|q6^&H;;evYl)v+uvZeC#`#SU`Fs>?Ec;-FVwm#-qBPA-Yehz zdV6^d!TX(3U#@?`pOT?>nR}PvnV9gB(mZG_9l(tzw5lKX+bjF+KNVBGdmDCrDz@wE6OA>AVk!abex^NI>Z>i()gz+-yRhBwejFS+j$2Uz z)wLko$@XMNl{*J~JC%9+o0YeN#-8oYy0v$zMJ52QEdcj|N7N_G4Z_3Ezk zD^&M(9aM*1zcvcTu3(ST7-!n`ypoK^oIPGpuv@lYOr|kpyQR9;^zHQR^zCo9Z})h& z!;p!M?hfxe)%o6&zYD>8!28*)zkJeIJgCiYPIWe6s-1zqU5@5wl<=Cvi<6hlzzchr zmUP-}0On4x==J&S+Wa;Wd#EzIgMj6GiM;xw|lmu zJDI{eI;xOZcS&YCcbcp9m%ohhuG#ya{`cjJ-vI9qs%66wg;d=LLaaT_D+MSNehZw9Jk%5kD`eXNd^0s{8YiVnu4Vs^i( zz4Ya7PZ6G(j3qpMJAFHS`y21uJ>DJLqgi)Y_iZO6GaAkynfapi z?Z#V*q>P*mGK_0`~bs$3q$eutSSKJb`X( z3hCh^*-o}6-8+3deft~k+ttA9Jfxgdje>U^Wm4;I@ZP&K^P`zB|4Fm=aAdXo?SE{% zzXQDAugtC^Il%;rBfQ#pb@Bpj3{2u#isYQRymS(tHz`LmBATL>so-$1l(?0NvZjIzV7``rR& z=&|(SvBGSKV%&HPz>bAr`0vf~+`b{($#$}xYUNHcvkpnL2fN1Sd~ps=FxW+==Pk z$^c*|+n+QStt`p2HG8S-rN+q&=i7(JGQW-cWP)8!73$un^_Xf$*>1A;uDW*|S-n^4 z?ba54eErWSfA;GT(IABHJ^hC}3!gu#%HT*nba}4@`@#=TT$^kv)yZ~Cb*-~Jw{OUHvYl*y8|Gy4@V@2o9t^x|tqR*A zupN^#5D0&}`{C;CUljiMKSPgo>Sw?D_{yIg)D|CBX7S6Iby;)Vjv4OExsY6%q{4GI z10zV+5l4;I)vGJj?X05)>=#Fh9~_xjICQ-KgQHLYJKXyRBU5+FeG7K__7vVN$+I=t zPPUWnZz0=VICG~6>u#6K$Qm)XYNqSv-d*tS@h*h#fBd8MzbO6Tzk%?Y(#(AI%PVIO z4$6arvJf6iy{Im~-xc!R-~ao|XZIge=0JFS1$;3jDGeCzHs_0zKAnrv65jsJiH}&wkF%jcC!7gWxK~a zx}u0>oRsa6d*3N`A;o({c!hkad%x7%E6=X2Y@Yl4+mkzg-FW%0&FBB}(Puy3>U^+Y z8XS}c4~qS*sm?95S;uNH>I(CKbd6tR#Brqb>GA1vM+@)2JC0UqF4A$E(xtJ=7QR+0 z2w{}!WcwmEFvnm=O}4jJUJg@7mkgwyJiElROK-*5rBvh&u&Wa8y$cWTlbOzTv9lve z6CRwu=XAf=6A9}3_sfI3tuwa<7w%OS9+dhCmGRT=ZmDy#&;ZXrIX-#z$oTT%k%f1T z&AxLq@Og0IeO~Qi8DvWKOUJvR*!o+cFX-p39!?*lkLkd+R%z>DA)mfvVFX! z(~q2ibYA_fn{Q9zJz~3e?=F4^+g0v*rlR285FSe-O-iFte8l;lBsLP-h#c_2d{+qk zMfxN8ssD)K99(a`Dd(8#>xBkJZoZgm;j3g1|5M-;Q@uREpyMvt-VnPUMBh%f;{uvo zeKub8N>H6_|9-JO#ydjzi0$IuJ=>M=9`fSkb%e$|dwWF@@UBl3AiM>>Wjk_vConuF zIe5P7slFGyx)uOC*>0$=cqiM*_FS;zr3X6-vfaA$Z2eZ8OC9Fh<9tTgu99%3*ahCR zga_n9o4gh7t}|@mWHe|g2`YJ2#GJ zBuDrN?Cxa@_MHUP`{LEDn8_pwPv1`8PTvl&lkIX1lTnbGjw6;IE3UwEo3-of_3`M`EiT@{&ji}X;F?PR+&Pg7zqHOIO$lL@9B1$}!2 zc8B*Z;JpMT2=8osPD&G~u0>$Ga(>6b98V{>^uTs;>^qPLyZH7%@@zr2lkI7+Gn2^y zJM(tQXM7+-wmTc|eY;S-hvkYQgLkcAHSKlgUgT+m-MF`Iz%}OI;C~ttH_+rqCVU zdy0KUI^HYfw*hecLOGJ-xl-Ld9nwK{6@B}o#zGJ-A`cUf*@AgH^LFO#%-e0!u62^? zdX(w4Y>y%Dz^-_Yo;~0_Xd5KA@>Ey6M{KY3cOpepC))$kLqWDbZ!ZUBl6DQ=nYZT{ zc=~qw_9Wr|cWf{B?yA6Z6oU7D0K0hjl*)afdZn-ONGIDD9@b-v9(ZmGvORzu1=+4? z3^N(^>h_r)fMnhtPssdVe0yMfT=cPVH)va6Zse&>wgcuVS(0aKvYl+dI973rV)lS{ z=IvyAHjVlJW->9-y@5Ai2jLT7$49cgKA%E*_?YFneM7dB?PUAfWD~L^&(`$qmh;Ip zhQ597L2an^YjaNX`!%on{Jz&gef~9iC}1bsm!7sn&xUIGS!?-uN+xV)CKDVxGa0ho zk~~|J?e}YQL9YQjenhta!OW?kFK12-(bAVQOHWmfYMIqD+_ki zNwDK1*`5z}(4K6+RqO;sMqTZCc+$65XYEa?TJyeCd$S(z)Z?9cyi?EZnfc!Af%NOb z;++HG$dW0d`Sy5VCLVy~oJ^{(%3dn-cH`dZ+v(feo5cZy zn06G_rDtpUcKUYucHWno+2u~(PT!6xcYkmRg+I7N-)=@CIRnWV$oka+BrZLxV9|36 z`gZ#Ey=akpoV2TZ&w6$HhQ6J?oxYvEoxYuOGIrvf=TdogNk-f`-#$^lGE9Z~6>;qJ z?d_Y>kv6B>v5FXv3F4d#@51KY9Ngc|odeuCz?}oHYo{`kVJ5>&hM5dA8D=ufWNZ#& zYtuYUEe&HYmAzDEGR$On?-K7_vMYbN<2St%l6xTS(lEOjEL(F|7!%T*mOuQVD`((IJ zhWlh5Hx{8MR?WpHN!bJ@TXRl^b26Nh;hYTTWVla;nGE;IT%M>y+$Xa!-EwMg_`NY< zflR81m&stUOuS5n_bw%u$y5fr(fY>$eLH>oi}teD%8Rz>2DkDR6-h~#bBorYZpD!VPY@U zjXr84l{1j+rCu7Z4%27jRj-O}2xqstRDCz*=LigPla@SKxLfE|!0 z+aJ~?X;(dJEWAdK8@zXk_b&0?CEmNldzX0cQhb8Rrt8_7c{}s=*u5Lm4g*i$zCP6o z@-AI-82hAer*EHsSchV-ZtK^WcKnFG{dt?doxYvEoxYvEoxVNq5EIWXjVDs~*s(Kj zHx@m3bz9K4-!1opq86$)Qt>p6ROap0w4Dhw5oxZ)XR*+~t zSK0fo?Hk^O&AYI97q-sKa88DEGI8q8Iho<9JAFHSdob#$g1%iHJAM24(enAxifAm7 zy&W}MGjF#B-n#T`P2W!6PTx-7&KJM8ef>C2g=rz*E$z@{-gyTlpDRP!|Tk(mrL8D=uf zWSGe?lVK)fa~NCSDRndI-6=)dDkY41>N;%BK!!#tirf}zc*$O>b?@92#+?HxyBx^lKji+y)dr-^Kehpze^LFO#tFO9{99atD*`+HJbx}cd zHB#ehAxFWY=N9zs^zHQR^zHQR^zHQR)~nl^zWsh}E-2TohnMv2Iw8Y38T$6frK?xB zPx|)h_RXX=r`xfL?af%7&0@#8^lY8JO|R&#!{(iOyi<>N>hVs!aV!est}xj=V5Zr# zHRszCV>6tS;hap~lso6!PuoRdsLi$k?g|^aZ9wC9=Iz$K)3@(cXM^tL+4b;JPNb?# z6vIp=eYxJu$)C%49Rd#X7%e%LXxzr zWZ?kw_951tzMZ~3VcOy0W7CeBzWq^SA?R^q!5Z~c{iLxNtGW0jDVwfm>l~^B>|}eA z>I!+X{qjUTi04u_rdv+!jSS3rE|r&yZ0eO4ZPClusI%hx zr?y!AsuL+?)KeeH_5gMiWINfuUG7J!^tX+YV5e`7U3wPpWP1QR3d3_-lkL?@<7v5V z1Kc?v3kSG!z{T&}@tZ&B&iQuEw~Kpc-cH{h1u}?bn8_qeI}AL1dkADuWWBn5L*Gu{ zesQegRJ}Ns5a(n#Cu3)0Y|S|t&dKC-R5>S;X{R!8XWs5JcI~3Fm&&|du2SWFsk|@M zY=f-uzSOWBELCt<7&#yz!^w1RoP2TH&W4BWiM5`sO+Wse1^SL_ELFvDRFQK z^N`GBn8`4cxm)f-@${qCW&o1CRNF{pFZEe#$!qypYx#LfX1JX*knE+}=4q;=e$k>{`oxVLz-I=$`BqV+N z5{4m%n0CCUZ%>$ZczF7D*!7^4QBQrOZ|B)1xqXRuVe87r+$Ya2@$8bAcKY_{J|^$d X?WrZ6UGf7n^zHQREivui2jBibctLOn diff --git a/bundles/org.eclipse.passage.loc.operator/src/.gitkeep b/bundles/org.eclipse.passage.loc.operator/src/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/bundles/org.eclipse.passage.loc.products.core/.classpath b/bundles/org.eclipse.passage.loc.products.core/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.core/.project b/bundles/org.eclipse.passage.loc.products.core/.project deleted file mode 100644 index 2e3d64606..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.products.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.products.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.products.core/META-INF/MANIFEST.MF deleted file mode 100644 index bbabc2d79..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,30 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.products.core -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.products.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.e4.core.services;bundle-version="0.0.0", - org.eclipse.passage.lic.emf;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.keys.model;bundle-version="0.0.0", - org.eclipse.passage.lic.products.edit;bundle-version="0.0.0", - org.eclipse.passage.lic.products.model;bundle-version="0.0.0", - org.eclipse.passage.loc.e4;bundle-version="0.0.0", - org.eclipse.passage.loc.equinox;bundle-version="0.0.0" -Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.passage.loc.internal.products; - x-friends:="org.eclipse.passage.loc.products.emfforms, - org.eclipse.passage.loc.products.ui, - org.eclipse.passage.loc.dashboard.ui, - org.eclipse.passage.loc.report.ui, - org.eclipse.passage.loc.users.ui, - org.eclipse.passage.loc.licenses.core, - org.eclipse.passage.loc.licenses.ui", - org.eclipse.passage.loc.internal.products.core;x-internal:=true -Import-Package: org.osgi.service.event;version="1.0.0", - org.slf4j;version="1.7.36" -Service-Component: OSGI-INF/*.xml diff --git a/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index a1ddb68a2..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/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 Products Core -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.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductDomainRegistry.xml b/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductDomainRegistry.xml deleted file mode 100644 index fb0b36fc2..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductDomainRegistry.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductOperatorServiceImpl.xml b/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductOperatorServiceImpl.xml deleted file mode 100644 index f357d7cc2..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductOperatorServiceImpl.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductsSelectionCommandAdvisor.xml b/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductsSelectionCommandAdvisor.xml deleted file mode 100644 index a9b77d64b..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/OSGI-INF/org.eclipse.passage.loc.internal.products.core.ProductsSelectionCommandAdvisor.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.core/about.html b/bundles/org.eclipse.passage.loc.products.core/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.products.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.products.core/build.properties b/bundles/org.eclipse.passage.loc.products.core/build.properties deleted file mode 100644 index 341338601..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/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.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistry.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistry.java deleted file mode 100644 index 1136f0d11..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistry.java +++ /dev/null @@ -1,39 +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.products; - -import java.util.Collection; -import java.util.Optional; - -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; - -public interface ProductRegistry { - - Collection productLines(); - - Optional productLine(String id); - - Collection products(); - - Optional product(String id); - - Collection productVersions(); - - Optional productVersion(String productId, String version); - - Collection productVersionFeatures(); - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistryEvents.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistryEvents.java deleted file mode 100644 index a32641d4d..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/ProductRegistryEvents.java +++ /dev/null @@ -1,138 +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.products; - -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; - -/** - * Product registry events and event topic definitions. - * - * @since 0.4.0 - */ -public final class ProductRegistryEvents { - - /** - * Base name of all Products events - */ - public static final String PRODUCTS_TOPIC_BASE = "org/eclipse/passage/lic/products/registry"; //$NON-NLS-1$ - - /** - * Base name of all Product Line events - */ - public static final String PRODUCT_LINE_TOPIC_BASE = PRODUCTS_TOPIC_BASE + TOPIC_SEP + "ProductLine"; //$NON-NLS-1$ - - /** - * Product Line create event - */ - public static final String PRODUCT_LINE_CREATE = PRODUCT_LINE_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Product Line read event - */ - public static final String PRODUCT_LINE_READ = PRODUCT_LINE_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Product Line update event - */ - public static final String PRODUCT_LINE_UPDATE = PRODUCT_LINE_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Product Line delete event - */ - public static final String PRODUCT_LINE_DELETE = PRODUCT_LINE_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all Product events - */ - public static final String PRODUCT_TOPIC_BASE = PRODUCTS_TOPIC_BASE + TOPIC_SEP + "Product"; //$NON-NLS-1$ - - /** - * Product create event - */ - public static final String PRODUCT_CREATE = PRODUCT_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Product read event - */ - public static final String PRODUCT_READ = PRODUCT_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Product update event - */ - public static final String PRODUCT_UPDATE = PRODUCT_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Product delete event - */ - public static final String PRODUCT_DELETE = PRODUCT_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all Product Version events - */ - public static final String PRODUCT_VERSION_TOPIC_BASE = PRODUCTS_TOPIC_BASE + TOPIC_SEP + "ProductVersion"; //$NON-NLS-1$ - - /** - * Product Version create event - */ - public static final String PRODUCT_VERSION_CREATE = PRODUCT_VERSION_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Product Version read event - */ - public static final String PRODUCT_VERSION_READ = PRODUCT_VERSION_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Product Version update event - */ - public static final String PRODUCT_VERSION_UPDATE = PRODUCT_VERSION_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Product Version delete event - */ - public static final String PRODUCT_VERSION_DELETE = PRODUCT_VERSION_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all Product Version Feature events - */ - public static final String PRODUCT_VERSION_FEATURE_TOPIC_BASE = PRODUCTS_TOPIC_BASE + TOPIC_SEP - + "ProductVersionFeature"; //$NON-NLS-1$ - - /** - * Product Version Feature create event - */ - public static final String PRODUCT_VERSION_FEATURE_CREATE = PRODUCT_VERSION_FEATURE_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * Product Version Feature read event - */ - public static final String PRODUCT_VERSION_FEATURE_READ = PRODUCT_VERSION_FEATURE_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * Product Version Feature update event - */ - public static final String PRODUCT_VERSION_FEATURE_UPDATE = PRODUCT_VERSION_FEATURE_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * Product Version Feature delete event - */ - public static final String PRODUCT_VERSION_FEATURE_DELETE = PRODUCT_VERSION_FEATURE_TOPIC_BASE + TOPIC_SEP + DELETE; - - private ProductRegistryEvents() { - // block - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertKeysReport.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertKeysReport.java deleted file mode 100644 index 3fcdf0f8f..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertKeysReport.java +++ /dev/null @@ -1,123 +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.products.core; - -import java.nio.file.Path; -import java.util.Collections; -import java.util.List; -import java.util.Optional; - -import org.eclipse.passage.loc.internal.products.core.i18n.ConverterMessages; - -public final class ConvertKeysReport { - - private final List records; - - ConvertKeysReport(List records) { - this.records = records; - } - - ConvertKeysReport(Record record) { - this(Collections.singletonList(record)); - } - - public List records() { - return records; - } - - public static abstract class Record { - - private final Path directory; - private final String message; - - protected Record(Path directory, String message) { - this.directory = directory; - this.message = message; - } - - public final Path origin() { - return directory; - } - - public final String message() { - return message; - } - - } - - static final class ErrorOnScan extends Record { - - ErrorOnScan(Path directory, Throwable thro) { - super(directory, String.format(// - ConverterMessages.ConvertKeysReport_e_scan, // - thro.getClass().getName(), // - thro.getMessage())); - } - - } - - static final class NoProduct extends Record { - - NoProduct(Path pub) { - super(pub.getParent(), String.format(// - ConverterMessages.ConvertKeysReport_e_product, // - pub)); - } - - } - - static final class ScrNotFound extends Record { - - ScrNotFound(Path pub) { - super(pub.getParent(), String.format(// - ConverterMessages.ConvertKeysReport_e_pair, // - pub.getFileName())); - } - - } - - static final class ErrorOnKeyReading extends Record { - - ErrorOnKeyReading(Path directory, String key, Throwable thro) { - super(directory, String.format(// - ConverterMessages.ConvertKeysReport_e_reading, // - key, // - thro.getClass().getName(), // - thro.getMessage())); - } - - } - - static final class ErrorOnKeyStoring extends Record { - - ErrorOnKeyStoring(Path directory, String key, Throwable thro) { - super(directory, String.format(// - ConverterMessages.ConvertKeysReport_e_storing, // - key, // - thro.getClass().getName(), // - thro.getMessage())); - } - - } - - static final class Success extends Record { - - Success(Path origin, String name, Optional locator) { - super(origin, String.format(// - ConverterMessages.ConvertKeysReport_success, // - name, // - locator.orElse(ConverterMessages.ConvertKeysReport_no_locator))); - } - - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertedKeys.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertedKeys.java deleted file mode 100644 index 1cbd1d037..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ConvertedKeys.java +++ /dev/null @@ -1,154 +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.products.core; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Optional; -import java.util.function.Consumer; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.base.BaseLicensedProduct; -import org.eclipse.passage.lic.base.io.LicensingFolder; -import org.eclipse.passage.lic.base.io.PassageFileExtension; -import org.eclipse.passage.lic.base.io.UserHomePath; -import org.eclipse.passage.lic.keys.model.api.KeyPair; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public final class ConvertedKeys { - - private final String ext = new PassageFileExtension.PublicKey().get(); - private final Consumer exposure; - - public ConvertedKeys(Consumer exposure) { - this.exposure = exposure; - } - - public ConvertedKeys() { - this(new ToLog()); - } - - @SuppressWarnings("resource") - public void persist() { - Path root = new LicensingFolder(new UserHomePath().get()).get(); - Stream files; - try { - files = Files.walk(root); // resource leak never happens - } catch (IOException e) { - exposure.accept(failedToScan(root, e)); - return; - } - exposure.accept(// - new ConvertKeysReport(files// - .filter(Files::isRegularFile)// - .filter(this::isPublicKey)// - .map(this::convert)// - .collect(Collectors.toList())// - )); - } - - private boolean isPublicKey(Path file) { - return file.toString().endsWith(ext); - } - - private ConvertKeysReport.Record convert(Path pub) { - Optional product = product(pub); - if (product.isEmpty()) { - return noProduct(pub); - } - Optional scr = scr(pub); - if (scr.isEmpty()) { - return noPair(pub); - } - KeyPair pair; - try { - pair = new KeyPairUpgraded(product.get(), pub, scr.get()).get(); - } catch (IOException e) { - return new ConvertKeysReport.ErrorOnKeyReading(pub.getParent(), keyName(pub), e); - } - Optional locator; - try { - locator = new KeyPairStored(pair).store(); - } catch (LicensingException e) { - return new ConvertKeysReport.ErrorOnKeyStoring(pub.getParent(), keyName(pub), e); - } - return new ConvertKeysReport.Success(pub.getParent(), keyName(pub), locator); - } - - private String keyName(Path pub) { - String path = pub.getFileName().toString(); - return path.substring(0, path.length() - ext.length()); - } - - private ConvertKeysReport failedToScan(Path dir, IOException e) { - return new ConvertKeysReport(new ConvertKeysReport.ErrorOnScan(dir, e)); - } - - private ConvertKeysReport.Record noProduct(Path pub) { - return new ConvertKeysReport.NoProduct(pub); - } - - private ConvertKeysReport.Record noPair(Path pub) { - return new ConvertKeysReport.ScrNotFound(pub); - } - - private Optional scr(Path pub) { - Path scr = pub.getParent().resolve(keyName(pub) + new PassageFileExtension.PrivateKey().get()); - return Files.exists(scr) && Files.isRegularFile(scr) // - ? Optional.of(scr) // - : Optional.empty(); - } - - private Optional product(Path pub) { - String name = keyName(pub); - int separator = name.lastIndexOf('_'); - if (separator < 0 || separator >= name.length()) { - return productFromFolders(pub); - } - return Optional.of(new BaseLicensedProduct(// - name.substring(0, separator), // - name.substring(separator + 1))); - } - - private Optional productFromFolders(Path pub) { - if (pub.getParent().getParent() == null) { // nio null - return Optional.empty(); - } - return Optional.of(new BaseLicensedProduct(// - pub.getParent().getParent().getFileName().toString(), // - pub.getParent().getFileName().toString())); - } - - static final class ToLog implements Consumer { - - private final Logger log = LoggerFactory.getLogger(ConvertedKeys.class); - - @Override - public void accept(ConvertKeysReport report) { - report.records().forEach(this::print); - } - - private void print(ConvertKeysReport.Record record) { - log.info(String.format(// - "%s || %s", //$NON-NLS-1$ - record.origin().toAbsolutePath(), // - record.message())); - } - - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairGeneraged.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairGeneraged.java deleted file mode 100644 index fcea5a149..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairGeneraged.java +++ /dev/null @@ -1,52 +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.products.core; - -import java.util.function.Supplier; - -import org.eclipse.passage.lic.api.io.StreamCodec; -import org.eclipse.passage.lic.keys.model.api.KeyPair; -import org.eclipse.passage.lic.keys.model.api.ProductRef; -import org.eclipse.passage.lic.keys.model.meta.KeysFactory; - -final class KeyPairGeneraged implements Supplier { - - private final StreamCodec author; - private final byte[] pub; - private final byte[] scr; - - KeyPairGeneraged(StreamCodec author, byte[] pub, byte[] scr) { - this.author = author; - this.pub = pub; - this.scr = scr; - } - - @Override - public KeyPair get() { - KeyPair pair = KeysFactory.eINSTANCE.createKeyPair(); - pair.setProduct(product()); - pair.setAlgorithm(author.algorithm().name()); - pair.setKey(author.keySize().size()); - pair.setPub(new String(pub)); - pair.setScr(new String(scr)); - return pair; - } - - private ProductRef product() { - ProductRef product = KeysFactory.eINSTANCE.createProductRef(); - product.setIdentifier(author.id().identifier()); - product.setVersion(author.id().version()); - return product; - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairStored.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairStored.java deleted file mode 100644 index 5384fddce..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairStored.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.internal.products.core; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.internal.emf.EObjectToBytes; -import org.eclipse.passage.lic.keys.model.api.KeyPair; -import org.eclipse.passage.loc.internal.api.workspace.Keys; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; - -/** - * Stores both coupled-keys file (*.keys_xmi) and product public-key file - * (*.pub) - */ -@SuppressWarnings("restriction") -public final class KeyPairStored { - - private final KeyPair pair; - - public KeyPairStored(KeyPair pair) { - this.pair = pair; - } - - public Optional store() throws LicensingException { - return new OperatorGearAware().withGear(gear -> store(gear.workspace().keys())); - } - - private Optional store(Keys keys) throws LicensingException { - String product = pair.getProduct().getIdentifier(); - String version = pair.getProduct().getVersion(); - ResourceHandle locator = storeCoupled(keys, product, version); - storePublic(keys, product, version); - return Optional.of(locator.info()); - } - - private ResourceHandle storeCoupled(Keys keys, String product, String version) throws LicensingException { - ResourceHandle locator = keys.located(product, version); - byte[] content = new EObjectToBytes(pair).get(); - try { - locator.write(content); - } catch (Exception e) { - throw new LicensingException(// - String.format("Failed to store keys for %s %s", product, version), // //$NON-NLS-1$ - e); - } - return locator; - } - - private void storePublic(Keys keys, String product, String version) throws LicensingException { - ResourceHandle locator = keys.locatedPub(product, version); - try { - locator.write(new ProductKeys(product, version).pubBytes()); - } catch (Exception e) { - throw new LicensingException("Failed to store public key", e); //$NON-NLS-1$ - } - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairUpgraded.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairUpgraded.java deleted file mode 100644 index 6fec66b14..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/KeyPairUpgraded.java +++ /dev/null @@ -1,58 +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.products.core; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.io.EncryptionAlgorithm; -import org.eclipse.passage.lic.api.io.EncryptionKeySize; -import org.eclipse.passage.lic.keys.model.api.KeyPair; -import org.eclipse.passage.lic.keys.model.api.ProductRef; -import org.eclipse.passage.lic.keys.model.meta.KeysFactory; - -public final class KeyPairUpgraded { - - private final LicensedProduct product; - private final Path pub; - private final Path scr; - - public KeyPairUpgraded(LicensedProduct product, Path pub, Path scr) { - this.product = product; - this.pub = pub; - this.scr = scr; - } - - public KeyPair get() throws IOException { - KeyPair pair = KeysFactory.eINSTANCE.createKeyPair(); - pair.setProduct(product()); - pair.setAlgorithm(new EncryptionAlgorithm.Default().name()); - pair.setKey(new EncryptionKeySize.Default().size()); - pair.setPub(fileContent(pub)); - pair.setScr(fileContent(scr)); - return pair; - } - - private ProductRef product() { - ProductRef ref = KeysFactory.eINSTANCE.createProductRef(); - ref.setIdentifier(product.identifier()); - ref.setVersion(product.version()); - return ref; - } - - private String fileContent(Path file) throws IOException { - return new String(Files.readAllBytes(file)); - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductDomainRegistry.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductDomainRegistry.java deleted file mode 100644 index f7c5dc4ac..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductDomainRegistry.java +++ /dev/null @@ -1,307 +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.products.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.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.internal.equinox.events.EquinoxEvent; -import org.eclipse.passage.lic.internal.products.model.util.ProductsResourceImpl; -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.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -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.Products; -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.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.ProductRegistryEvents; -import org.eclipse.passage.loc.internal.products.core.i18n.ProductsCoreMessages; -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 + '=' + ProductsPackage.eNAME, - EditingDomainRegistryAccess.PROPERTY_FILE_EXTENSION + '=' + "products_xmi" }) -public final class ProductDomainRegistry extends BaseDomainRegistry - implements ProductRegistry, EditingDomainRegistry { - - private final Map lines = new HashMap<>(); - private final Map products = new HashMap<>(); - private final Map> versions = new HashMap<>(); - private final Map>> features = 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); - } - - @Override - @Reference - public void bindGear(OperatorGearSupplier supplier) { - super.bindGear(supplier); - } - - @Override - public void unbindGear(OperatorGearSupplier supplier) { - super.unbindGear(supplier); - } - - @Activate - public void load(Map properties) { - super.activate(properties); - } - - @Deactivate - public void unload(Map properties) { - for (Map> map : features.values()) { - map.clear(); - } - versions.values().forEach(Map::clear); - products.clear(); - lines.clear(); - super.deactivate(properties); - } - - @Override - public String getFileExtension() { - return "products_xmi"; //$NON-NLS-1$ - } - - @Override - public Class getContentClass() { - return ProductLine.class; - } - - @Override - public String resolveIdentifier(ProductLine content) { - return content.getIdentifier(); - } - - @Override - public Collection productLines() { - return new ArrayList<>(lines.values()); - } - - @Override - public Optional productLine(String identifier) { - return Optional.ofNullable(lines.get(identifier)); - } - - @Override - public Collection products() { - return new ArrayList<>(products.values()); - } - - @Override - public Optional product(String id) { - return Optional.ofNullable(products.get(id)); - } - - @Override - public Collection productVersions() { - List list = new ArrayList<>(); - Collection> values = versions.values(); - for (Map map : values) { - list.addAll(map.values()); - } - return list; - } - - @Override - public Optional productVersion(String product, String version) { - return Optional.ofNullable(versions.get(product)).map(m -> m.get(version)); - } - - @Override - public Collection productVersionFeatures() { - List result = new ArrayList<>(); - for (Map> maps : features.values()) { - for (Map map : maps.values()) { - result.addAll(map.values()); - } - } - return result; - } - - @Override - protected DomainContentAdapter createContentAdapter() { - return new ProductsDomainRegistryTracker(this); - } - - void registerProductLine(ProductLine line) { - ProductLine existing = lines.put(line.getIdentifier(), line); - if ((existing != null) && (existing != line)) { - Platform.getLog(getClass()) - .warn(NLS.bind(ProductsCoreMessages.ProductDomain_instance_duplication_message, existing, line)); - } - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_LINE_CREATE, line).get()); - line.getProducts().forEach(p -> registerProduct(p)); - } - - void registerProduct(Product product) { - String identifier = product.getIdentifier(); - Product existing = products.put(identifier, product); - if ((existing != null) && (existing != product)) { - String msg = NLS.bind(ProductsCoreMessages.ProductDomain_instance_duplication_message, existing, product); - Platform.getLog(getClass()).warn(msg); - } - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_CREATE, product).get()); - product.getProductVersions().forEach(pv -> registerProductVersion(product, pv)); - } - - void registerProductVersion(Product product, ProductVersion version) { - ProductVersion existing = versions.computeIfAbsent(product.getIdentifier(), key -> new HashMap<>()) - .put(version.getVersion(), version); - if ((existing != null) && (existing != version)) { - Platform.getLog(getClass()) - .warn(NLS.bind(ProductsCoreMessages.ProductDomain_instance_duplication_message, existing, version)); - } - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_VERSION_CREATE, version).get()); - } - - void registerProductVersionFeature(Product product, ProductVersion version, ProductVersionFeature feature) { - ProductVersionFeature existing = features// - .computeIfAbsent(product.getIdentifier(), key -> new HashMap<>())// - .computeIfAbsent(version.getVersion(), key -> new HashMap<>())// - .put(feature.getFeatureIdentifier(), feature); - if ((existing != null) && (existing != feature)) { - Platform.getLog(getClass()) - .warn(NLS.bind(ProductsCoreMessages.ProductDomain_instance_duplication_message, existing, feature)); - } - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_VERSION_FEATURE_CREATE, feature).get()); - } - - void unregisterProductLine(String id) { - ProductLine removed = lines.remove(id); - if (removed != null) { - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_LINE_DELETE, removed).get()); - removed.getProducts().forEach(p -> unregisterProduct(p.getIdentifier())); - } - } - - void unregisterProduct(String id) { - Product removed = products.remove(id); - if (removed != null) { - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_DELETE, removed).get()); - removed.getProductVersions().forEach(pv -> unregisterProductVersion(id, pv.getVersion())); - } - } - - void unregisterProductVersion(String product, String version) { - Map found = versions.get(product); - if (found != null) { - ProductVersion removed = found.remove(version); - if (removed != null) { - events().postEvent(new EquinoxEvent(ProductRegistryEvents.PRODUCT_VERSION_DELETE, removed).get()); - removed.getProductVersionFeatures() - .forEach(pvf -> unregisterProductVersionFeature(product, version, pvf.getFeatureIdentifier())); - } - if (found.isEmpty()) { - found.remove(product); - } - } - } - - void unregisterProductVersionFeature(String product, String version, String feature) { - Map> maps = features.get(product); - if (maps != null) { - Map map = maps.get(version); - if (map != null) { - ProductVersionFeature removed = map.remove(feature); - if (removed != null) { - events().postEvent( - new EquinoxEvent(ProductRegistryEvents.PRODUCT_VERSION_FEATURE_DELETE, removed).get()); - } - if (map.isEmpty()) { - maps.remove(version); - } - } - if (maps.isEmpty()) { - features.remove(product); - } - } - } - - private EventAdmin events() { - return events.stream().findAny().get(); - } - - @Override - public EClass getContentClassifier() { - return ProductsPackage.eINSTANCE.getProductLine(); - } - - @Override - public EStructuralFeature getContentIdentifierAttribute() { - return ProductsPackage.eINSTANCE.getProductLine_Identifier(); - } - - @Override - public EStructuralFeature getContentNameAttribute() { - return ProductsPackage.eINSTANCE.getProductLine_Name(); - } - - @Override - public void registerContent(ProductLine content) { - registerProductLine(content); - } - - @Override - public void unregisterContent(String identifier) { - unregisterProductLine(identifier); - } - - @Override - protected final Resource createResource(URI uri) { - return new ProductsResourceImpl(uri); - } - - @Override - protected boolean emfResource(ResourceHandle handle) { - return Products.xmi.equals(handle.type()) || Products.xmi033.equals(handle.type()); - } - - @Override - protected KnownResources knownResources(OperatorWorkspace workspace) { - return workspace.products(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductKeys.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductKeys.java deleted file mode 100644 index 196909568..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductKeys.java +++ /dev/null @@ -1,89 +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.products.core; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.Optional; -import java.util.function.Function; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.base.BaseLicensedProduct; -import org.eclipse.passage.lic.internal.emf.EObjectFromBytes; -import org.eclipse.passage.lic.keys.model.api.KeyPair; -import org.eclipse.passage.lic.keys.model.meta.KeysPackage; -import org.eclipse.passage.loc.internal.api.workspace.Keys; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; -import org.eclipse.passage.loc.internal.products.core.i18n.IssuingMessages; - -@SuppressWarnings("restriction") -public final class ProductKeys { - - private final LicensedProduct product; - - public ProductKeys(LicensedProduct product) { - this.product = product; - } - - public ProductKeys(String product, String version) { - this(new BaseLicensedProduct(product, version)); - } - - public InputStream scrStream() throws LicensingException { - return getStream(KeyPair::getScr); - } - - public InputStream pubStream() throws LicensingException { - return getStream(KeyPair::getPub); - } - - public byte[] scrBytes() throws LicensingException { - return getBytes(KeyPair::getScr); - } - - public byte[] pubBytes() throws LicensingException { - return getBytes(KeyPair::getPub); - } - - private InputStream getStream(Function get) throws LicensingException { - return new ByteArrayInputStream(getBytes(get)); - } - - private byte[] getBytes(Function get) throws LicensingException { - Keys.Smart keys = new Keys.Smart(keys()); - if (!keys.exists(product)) { - throw new LicensingException( - String.format(IssuingMessages.ProductKeys_keys_no_storage_for_product, product)); - } - ResourceHandle source = keys.located(product); - try { - KeyPair pair = new EObjectFromBytes(source.content(), KeysPackage.eINSTANCE.getKeyPair()).get(); - return get.apply(pair).getBytes(); - } catch (Exception e) { - throw new LicensingException( - String.format(IssuingMessages.ProductKeys_keys_reading_failed, product, source.info())); - } - } - - private Keys keys() throws LicensingException { - Optional keys = new OperatorGearAware().withGear(gear -> Optional.of(gear.workspace().keys())); - if (!keys.isPresent()) { - throw new LicensingException(IssuingMessages.ProductKeys_keys_no_service); - } - return keys.get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductOperatorServiceImpl.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductOperatorServiceImpl.java deleted file mode 100644 index e909b9f15..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductOperatorServiceImpl.java +++ /dev/null @@ -1,59 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.internal.products.core; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.loc.internal.e4.events.OperatorProductEvents; -import org.eclipse.passage.loc.internal.equinox.OperatorProductService; -import org.osgi.framework.FrameworkUtil; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.component.annotations.ReferenceCardinality; -import org.osgi.service.event.EventAdmin; - -@SuppressWarnings("restriction") -@Component -public final class ProductOperatorServiceImpl implements OperatorProductService { - - 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); - } - - @Override - public String createPassword(ProductVersion descriptor) { - return new ProductVersionPassword(descriptor).get(); - } - - @Override - public IStatus createProductKeys(ProductVersion target) { - return new ProductVersionKeys(FrameworkUtil.getBundle(getClass()).getSymbolicName(), this::broadcast) - .createKeys(target); - } - - private void broadcast(String info) { - events.stream().findAny().get().postEvent(new OperatorProductEvents().keysCreated(info)); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionKeys.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionKeys.java deleted file mode 100644 index c785aa684..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionKeys.java +++ /dev/null @@ -1,140 +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.products.core; - -import java.io.ByteArrayOutputStream; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Consumer; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.api.io.StreamCodec; -import org.eclipse.passage.lic.base.BaseLicensedProduct; -import org.eclipse.passage.lic.keys.model.api.KeyPair; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.loc.internal.api.workspace.Keys; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; -import org.eclipse.passage.loc.internal.products.core.i18n.ProductsCoreMessages; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("restriction") -final class ProductVersionKeys { - - private final String plugin; - private final Consumer notify; - private final Logger log = LoggerFactory.getLogger(getClass()); - - ProductVersionKeys(String plugin, Consumer notify) { - Objects.requireNonNull(plugin, "ProductVersionPassword::plugin"); //$NON-NLS-1$ - Objects.requireNonNull(notify, "ProductVersionPassword::notify"); //$NON-NLS-1$ - this.plugin = plugin; - this.notify = notify; - } - - ProductVersionKeys(String plugin) { - this(plugin, p -> { - }); - } - - public IStatus createKeys(ProductVersion target) { - LicensedProduct product = product(target); - Optional existing; - try { - existing = keyIsPresent(product); - } catch (LicensingException e) { - return failed(e); - } - if (existing.isPresent()) { - return error(existing.get()); - } - Optional codec; - try { - codec = codec(product); - } catch (LicensingException e) { - return failed(e); - } - if (codec.isEmpty()) { - return noCodec(target, product); - } - try { - return createKeyPair(target, product, codec.get()); - } catch (Exception e) { - return failed(e); - } - } - - private BaseLicensedProduct product(ProductVersion target) { - return new BaseLicensedProduct(// - target.getProduct().getIdentifier(), // - target.getVersion()); - } - - private Optional codec(LicensedProduct product) throws LicensingException { - return new OperatorGearAware().withGear(gear -> gear.codec(product)); - } - - private Optional keyIsPresent(LicensedProduct target) throws LicensingException { - Keys service = new OperatorGearAware().withGear(gear -> Optional.of(gear.workspace().keys())).get(); - Optional exists = service.existing(target.identifier(), target.version()); - return exists.map( - path -> String.format(ProductsCoreMessages.ProductOperatorServiceImpl_e_key_already_defined, path)); - } - - private IStatus createKeyPair(ProductVersion target, LicensedProduct product, StreamCodec codec) - throws LicensingException { - Optional stored = store(generate(target, product, codec)); - if (!stored.isPresent()) { - notify.accept(stored.get()); - } - return created(stored); - } - - private Optional store(KeyPair pair) throws LicensingException { - return new KeyPairStored(pair).store(); - } - - private KeyPair generate(ProductVersion target, LicensedProduct product, StreamCodec codec) - throws LicensingException { - try (ByteArrayOutputStream open = new ByteArrayOutputStream(); - ByteArrayOutputStream secret = new ByteArrayOutputStream()) { - codec.createKeyPair(open, secret, product.identifier(), new ProductVersionPassword(target).get()); - return new KeyPairGeneraged(codec, open.toByteArray(), secret.toByteArray()).get(); - } catch (Exception e) { - throw new LicensingException("failed to generate keys", e); //$NON-NLS-1$ // TODO: l10n - } - } - - private Status error(String errors) { - return new Status(IStatus.ERROR, plugin, errors); - } - - private Status noCodec(ProductVersion target, LicensedProduct product) { - return error(String.format(ProductsCoreMessages.ProductOperatorServiceImpl_e_unable_to_create_keys, - product.version(), target.getProduct().getName())); - } - - private Status failed(Exception e) { - log.error("", e); //$NON-NLS-1$ - return new Status(IStatus.ERROR, plugin, ProductsCoreMessages.ProductOperatorServiceImpl_e_export_error, e); - } - - private Status created(Optional persisted) { - return new Status(IStatus.OK, plugin, String - .format(ProductsCoreMessages.ProductOperatorServiceImpl_ok_keys_exported, persisted.orElse("unknown"))); //$NON-NLS-1$ - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionPassword.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionPassword.java deleted file mode 100644 index bc0211f34..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductVersionPassword.java +++ /dev/null @@ -1,42 +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.products.core; - -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.passage.lic.products.model.api.ProductVersion; - -final class ProductVersionPassword implements Supplier { - - private final ProductVersion source; - - ProductVersionPassword(ProductVersion source) { - Objects.requireNonNull(source, "ProductVersionPassword::source"); //$NON-NLS-1$ - this.source = source; - } - - @Override - public String get() { - return id() + "###" + version(); //$NON-NLS-1$ - } - - private String id() { - return source.getProduct().getIdentifier(); - } - - private String version() { - return source.getVersion(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsDomainRegistryTracker.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsDomainRegistryTracker.java deleted file mode 100644 index f655c7d44..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsDomainRegistryTracker.java +++ /dev/null @@ -1,257 +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.products.core; - -import org.eclipse.emf.common.notify.Notification; -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.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.emf.DomainContentAdapter; - -public class ProductsDomainRegistryTracker extends DomainContentAdapter { - - public ProductsDomainRegistryTracker(ProductDomainRegistry registry) { - super(registry); - } - - @Override - public void notifyChanged(Notification notification) { - Object notifier = notification.getNotifier(); - if (notifier instanceof ProductLine) { - ProductLine productLine = (ProductLine) notifier; - switch (notification.getFeatureID(ProductLine.class)) { - case ProductsPackage.PRODUCT_LINE__IDENTIFIER: - processProductLineIdentifier(productLine, notification); - break; - case ProductsPackage.PRODUCT_LINE__PRODUCTS: - processProductLineProducts(notification); - break; - default: - break; - } - } else if (notifier instanceof Product) { - Product product = (Product) notifier; - switch (notification.getFeatureID(Product.class)) { - case ProductsPackage.PRODUCT__IDENTIFIER: - processProductIdentifier(product, notification); - break; - case ProductsPackage.PRODUCT__PRODUCT_VERSIONS: - processProductProductVersions(product, notification); - break; - default: - break; - } - } else if (notifier instanceof ProductVersion) { - ProductVersion productVersion = (ProductVersion) notifier; - switch (notification.getFeatureID(ProductVersion.class)) { - case ProductsPackage.PRODUCT_VERSION__VERSION: - processProductVersionVersion(productVersion, notification); - break; - case ProductsPackage.PRODUCT_VERSION__PRODUCT_VERSION_FEATURES: - processProductVersionProductVersionFeatures(productVersion, notification); - break; - default: - break; - } - } else if (notifier instanceof ProductVersionFeature) { - ProductVersionFeature productVersionFeature = (ProductVersionFeature) notifier; - switch (notification.getFeatureID(ProductVersionFeature.class)) { - case ProductsPackage.PRODUCT_VERSION_FEATURE__FEATURE_IDENTIFIER: - processProductVersionFeatureFeatureIdentifier(productVersionFeature, notification); - break; - default: - break; - } - } - super.notifyChanged(notification); - } - - protected void processProductLineIdentifier(ProductLine line, Notification notification) { - String from = notification.getOldStringValue(); - String to = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (from != null) { - registry.unregisterProductLine(from); - } - if (to != null) { - registry.registerProductLine(line); - } - break; - default: - break; - } - } - - private void processProductLineProducts(Notification notification) { - Object from = notification.getOldValue(); - Object to = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.ADD: - if (to instanceof Product) { - Product product = (Product) to; - String identifier = product.getIdentifier(); - if (identifier != null) { - registry.registerProduct(product); - } - } - break; - case Notification.REMOVE: - if (from instanceof Product) { - Product product = (Product) from; - String identifier = product.getIdentifier(); - if (identifier != null) { - registry.unregisterProduct(identifier); - } - } - break; - - default: - break; - } - } - - protected void processProductIdentifier(Product product, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterProduct(oldValue); - } - if (newValue != null) { - registry.registerProduct(product); - } - break; - default: - break; - } - } - - protected void processProductProductVersions(Product product, Notification notification) { - Object oldValue = notification.getOldValue(); - Object newValue = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.ADD: - if (newValue instanceof ProductVersion) { - ProductVersion productVersion = (ProductVersion) newValue; - String version = productVersion.getVersion(); - if (version != null) { - registry.registerProductVersion(product, productVersion); - } - } - break; - case Notification.REMOVE: - if (oldValue instanceof ProductVersion) { - ProductVersion productVersion = (ProductVersion) oldValue; - String version = productVersion.getVersion(); - if (version != null) { - registry.unregisterProductVersion(product.getIdentifier(), version); - } - } - break; - - default: - break; - } - } - - protected void processProductVersionVersion(ProductVersion productVersion, Notification notification) { - Product product = productVersion.getProduct(); - if (product == null) { - // FIXME: warn - return; - } - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterProductVersion(product.getIdentifier(), oldValue); - } - if (newValue != null) { - registry.registerProductVersion(product, productVersion); - } - break; - default: - break; - } - } - - protected void processProductVersionProductVersionFeatures(ProductVersion productVersion, - Notification notification) { - Product product = productVersion.getProduct(); - if (product == null) { - // FIXME: warn - return; - } - Object oldValue = notification.getOldValue(); - Object newValue = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.ADD: - if (newValue instanceof ProductVersionFeature) { - ProductVersionFeature productVersionFeature = (ProductVersionFeature) newValue; - String featureId = productVersionFeature.getFeatureIdentifier(); - if (featureId != null) { - registry.registerProductVersionFeature(product, productVersion, productVersionFeature); - } - } - break; - case Notification.REMOVE: - if (oldValue instanceof ProductVersionFeature) { - ProductVersionFeature productVersionFeature = (ProductVersionFeature) oldValue; - String featureId = productVersionFeature.getFeatureIdentifier(); - if (featureId != null) { - registry.unregisterProductVersionFeature(product.getIdentifier(), productVersion.getVersion(), - featureId); - } - } - break; - - default: - break; - } - } - - protected void processProductVersionFeatureFeatureIdentifier(ProductVersionFeature productVersionFeature, - Notification notification) { - ProductVersion productVersion = productVersionFeature.getProductVersion(); - if (productVersion == null) { - // FIXME: warn - return; - } - Product product = productVersion.getProduct(); - if (product == null) { - // FIXME: warn - return; - } - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - String productId = product.getIdentifier(); - String version = productVersion.getVersion(); - registry.unregisterProductVersionFeature(productId, version, oldValue); - } - if (newValue != null) { - registry.registerProductVersionFeature(product, productVersion, productVersionFeature); - } - break; - default: - break; - } - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsSelectionCommandAdvisor.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsSelectionCommandAdvisor.java deleted file mode 100644 index 551d8ae34..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/ProductsSelectionCommandAdvisor.java +++ /dev/null @@ -1,78 +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.products.core; - -import java.util.Collections; - -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.emf.SelectionCommandAdvisor; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.core.i18n.ProductsCoreMessages; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; - -@Component(property = { EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME + '=' + ProductsPackage.eNAME }) -public class ProductsSelectionCommandAdvisor implements SelectionCommandAdvisor { - - private ProductRegistry productRegistry; - - @Reference - public void bindDomainRegistry(ProductRegistry registry) { - this.productRegistry = registry; - } - - public void unbindDomainRegistry(ProductRegistry registry) { - if (this.productRegistry == registry) { - this.productRegistry = null; - } - } - - @Override - public String getSelectionTitle(String classifier) { - if (ProductsPackage.eINSTANCE.getProductLine().getName().equals(classifier)) { - return ProductsCoreMessages.ProductsSelectionCommandAdvisor_select_product_line; - } - if (ProductsPackage.eINSTANCE.getProduct().getName().equals(classifier)) { - return ProductsCoreMessages.ProductsSelectionCommandAdvisor_select_product; - } - if (ProductsPackage.eINSTANCE.getProductVersion().getName().equals(classifier)) { - return ProductsCoreMessages.ProductsSelectionCommandAdvisor_select_product_version; - } - if (ProductsPackage.eINSTANCE.getProductVersionFeature().getName().equals(classifier)) { - return ProductsCoreMessages.ProductsSelectionCommandAdvisor_select_product_version_feature; - } - return null; - } - - @Override - public Iterable getSelectionInput(String classifier) { - if (productRegistry == null) { - return Collections.emptyList(); - } - if (ProductsPackage.eINSTANCE.getProductLine().getName().equals(classifier)) { - return productRegistry.productLines(); - } - if (ProductsPackage.eINSTANCE.getProduct().getName().equals(classifier)) { - return productRegistry.products(); - } - if (ProductsPackage.eINSTANCE.getProductVersion().getName().equals(classifier)) { - return productRegistry.productVersions(); - } - if (ProductsPackage.eINSTANCE.getProductVersionFeature().getName().equals(classifier)) { - return productRegistry.productVersionFeatures(); - } - return Collections.emptyList(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/PublicKeyReplcated.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/PublicKeyReplcated.java deleted file mode 100644 index bebc6b2d0..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/PublicKeyReplcated.java +++ /dev/null @@ -1,45 +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.products.core; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardOpenOption; - -import org.eclipse.passage.lic.api.LicensedProduct; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.base.io.FileNameFromLicensedProduct; -import org.eclipse.passage.lic.base.io.PassageFileExtension; - -public final class PublicKeyReplcated { - - private final LicensedProduct product; - public final Path folder; - - public PublicKeyReplcated(LicensedProduct product, Path folder) { - this.product = product; - this.folder = folder; - } - - public Path store() throws IOException, LicensingException { - Path destination = folder - .resolve(new FileNameFromLicensedProduct(product, new PassageFileExtension.PublicKey()).get()); - if (Files.exists(destination)) { - return destination; - } - Files.write(destination, new ProductKeys(product).pubBytes(), StandardOpenOption.CREATE_NEW); - return destination; - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.java deleted file mode 100644 index d501dc48c..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.java +++ /dev/null @@ -1,33 +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.products.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public class ConverterMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.products.core.i18n.ConverterMessages"; //$NON-NLS-1$ - public static String ConvertKeysReport_e_pair; - public static String ConvertKeysReport_e_product; - public static String ConvertKeysReport_e_reading; - public static String ConvertKeysReport_e_scan; - public static String ConvertKeysReport_e_storing; - public static String ConvertKeysReport_no_locator; - public static String ConvertKeysReport_success; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, ConverterMessages.class); - } - - private ConverterMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.properties b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.properties deleted file mode 100644 index 71bcfbb14..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ConverterMessages.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 -############################################################################### - -ConvertKeysReport_e_pair=Cancelled: no secret key found for %s -ConvertKeysReport_e_product=Cancelled: product version cannot be deduced for %s -ConvertKeysReport_e_reading=Failed: key %s reading failed with %s (%s) -ConvertKeysReport_e_scan=Failed: directory scan failed with %s (%s) -ConvertKeysReport_e_storing=Failed: key pair %s storing failed with %s (%s) -ConvertKeysReport_no_locator=no locator -ConvertKeysReport_success=Converted: %s to %s diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.java deleted file mode 100644 index 72ee91765..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.java +++ /dev/null @@ -1,30 +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.products.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public final class IssuingMessages extends NLS { - - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.products.core.i18n.IssuingMessages"; //$NON-NLS-1$ - public static String ProductKeys_keys_no_service; - public static String ProductKeys_keys_no_storage_for_product; - public static String ProductKeys_keys_reading_failed; - - static { - NLS.initializeMessages(BUNDLE_NAME, IssuingMessages.class); - } - - private IssuingMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.properties b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.properties deleted file mode 100644 index 6daa7c2e3..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/IssuingMessages.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 - ongoing support -############################################################################### - -ProductKeys_keys_no_service=keys location service failed to be found -ProductKeys_keys_no_storage_for_product=keys storage is not located for [%s] -ProductKeys_keys_reading_failed=failed to read key pair for [%s] from [%s] diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.java b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.java deleted file mode 100644 index f2e462b89..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.java +++ /dev/null @@ -1,36 +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.products.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public class ProductsCoreMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.products.core.i18n.ProductsCoreMessages"; //$NON-NLS-1$ - public static String ProductOperatorServiceImpl_e_export_error; - public static String ProductOperatorServiceImpl_e_invalid_product_version; - public static String ProductOperatorServiceImpl_e_key_already_defined; - public static String ProductOperatorServiceImpl_e_unable_to_create_keys; - public static String ProductOperatorServiceImpl_ok_keys_exported; - public static String ProductsSelectionCommandAdvisor_select_product; - public static String ProductsSelectionCommandAdvisor_select_product_line; - public static String ProductsSelectionCommandAdvisor_select_product_version; - public static String ProductsSelectionCommandAdvisor_select_product_version_feature; - public static String ProductDomain_instance_duplication_message; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, ProductsCoreMessages.class); - } - - private ProductsCoreMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.properties b/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.properties deleted file mode 100644 index b06cdcfae..000000000 --- a/bundles/org.eclipse.passage.loc.products.core/src/org/eclipse/passage/loc/internal/products/core/i18n/ProductsCoreMessages.properties +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 2021 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 -############################################################################### - -ProductOperatorServiceImpl_e_export_error=Product key export error -ProductOperatorServiceImpl_e_invalid_product_version=Invalid Product Version -ProductOperatorServiceImpl_e_key_already_defined=Key already defined: \n %s -ProductOperatorServiceImpl_e_unable_to_create_keys=Unable to create keys for version %s of %s : \n codec not found -ProductOperatorServiceImpl_ok_keys_exported=Product keys exported successfully: \n\n %s\n -ProductsSelectionCommandAdvisor_select_product=Select Product -ProductsSelectionCommandAdvisor_select_product_line=Select Product Line -ProductsSelectionCommandAdvisor_select_product_version=Select Product Version -ProductsSelectionCommandAdvisor_select_product_version_feature=Select Product Version Feature -ProductDomain_instance_duplication_message=Duplication of instances. The existing instance: \"{0}\" will be replaced by: \"{1}\" diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/.classpath b/bundles/org.eclipse.passage.loc.products.emfforms/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/.project b/bundles/org.eclipse.passage.loc.products.emfforms/.project deleted file mode 100644 index e3bd4213a..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.products.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.products.emfforms/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.products.emfforms/META-INF/MANIFEST.MF deleted file mode 100644 index 5d8ff7a9f..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,36 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.products.emfforms -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.products.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.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.emfforms.swt.core;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core.di;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.jface;bundle-version="0.0.0", - org.eclipse.passage.lic.products.model;bundle-version="0.0.0", - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.features.emfforms;bundle-version="0.0.0", - org.eclipse.passage.loc.products.ui;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.products.emfforms.parts;x-internal:=true, - org.eclipse.passage.loc.products.emfforms.renderers;x-friends:="org.eclipse.passage.loc.licenses.emfforms" -Service-Component: OSGI-INF/*.xml -Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index ca058c447..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/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 Products EMF Forms -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.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.FeatureIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.FeatureIdentifierRendererService.xml deleted file mode 100644 index 564243862..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.FeatureIdentifierRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PrivateKeyRendererService.xml b/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PrivateKeyRendererService.xml deleted file mode 100644 index 1489ebec9..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PrivateKeyRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PublicKeyRendererService.xml b/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PublicKeyRendererService.xml deleted file mode 100644 index cb272e5b4..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.PublicKeyRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.RestrictionLevelRendererService.xml b/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.RestrictionLevelRendererService.xml deleted file mode 100644 index 58c504d2b..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/OSGI-INF/org.eclipse.passage.loc.products.emfforms.renderers.RestrictionLevelRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/about.html b/bundles/org.eclipse.passage.loc.products.emfforms/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.products.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.products.emfforms/build.properties b/bundles/org.eclipse.passage.loc.products.emfforms/build.properties deleted file mode 100644 index d6b5e01ce..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/build.properties +++ /dev/null @@ -1,22 +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/,\ - .,\ - plugin.xml,\ - OSGI-INF/,\ - viewmodels/,\ - fragment.e4xmi,\ - about.html diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/fragment.e4xmi b/bundles/org.eclipse.passage.loc.products.emfforms/fragment.e4xmi deleted file mode 100644 index 2aa7c3de1..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/fragment.e4xmi +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/plugin.xml b/bundles/org.eclipse.passage.loc.products.emfforms/plugin.xml deleted file mode 100644 index 0c60b8964..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/plugin.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsCreateElementCallback.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsCreateElementCallback.java deleted file mode 100644 index a17e0c1be..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsCreateElementCallback.java +++ /dev/null @@ -1,34 +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.products.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 ProductsCreateElementCallback implements CreateElementCallback { - - @Override - public void initElement(EObject parent, EReference reference, EObject newObject) { - } - - @Override - public boolean beforeCreateElement(Object newElement) { - return true; - } - - @Override - public void afterCreateElement(Object newElement) { - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsDetailsPart.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsDetailsPart.java deleted file mode 100644 index 79ebf68da..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/parts/ProductsDetailsPart.java +++ /dev/null @@ -1,46 +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.products.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.products.model.api.ProductLine; -import org.eclipse.passage.loc.internal.products.ProductRegistryEvents; -import org.eclipse.passage.loc.workbench.emfforms.parts.DetailsView; - -public class ProductsDetailsPart extends DetailsView { - - @Inject - public ProductsDetailsPart(MPart part, ESelectionService selectionService) { - super(part, selectionService); - } - - @Inject - @Optional - public void showProductLine(@UIEventTopic(ProductRegistryEvents.PRODUCT_LINE_CREATE) ProductLine input, - IEclipseContext context) { - show(input, context); - } - - @Override - protected CreateElementCallback getCreateElementCallback() { - return new ProductsCreateElementCallback(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/FeatureIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/FeatureIdentifierRendererService.java deleted file mode 100644 index c1de67a17..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/FeatureIdentifierRendererService.java +++ /dev/null @@ -1,55 +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.products.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.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.features.emfforms.renderers.FeatureIdentifierRenderer; -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 FeatureIdentifierRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public FeatureIdentifierRendererService() { - super(FeatureIdentifierRenderer.class, ProductsPackage.eINSTANCE.getProductVersionFeature_FeatureIdentifier()); - } - - @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.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRenderer.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRenderer.java deleted file mode 100644 index c21810512..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRenderer.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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.products.emfforms.renderers; - -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.api.OperatorGearSupplier; -import org.eclipse.passage.loc.internal.api.workspace.Keys; - -public final class PrivateKeyRenderer extends ProductVersionKeyRenderer { - - @Inject - public PrivateKeyRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider, OperatorGearSupplier gear) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider, - gear); - } - - @Override - protected String getFileExtension() { - return "." + Keys.xmi.id(); //$NON-NLS-1$ - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRendererService.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRendererService.java deleted file mode 100644 index 965656156..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PrivateKeyRendererService.java +++ /dev/null @@ -1,54 +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.products.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.products.model.meta.ProductsPackage; -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 PrivateKeyRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public PrivateKeyRendererService() { - super(PrivateKeyRenderer.class, ProductsPackage.eINSTANCE.getProductVersion_SecureToken()); - } - - @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.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductIdentifierRenderer.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductIdentifierRenderer.java deleted file mode 100644 index f39a92de7..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductIdentifierRenderer.java +++ /dev/null @@ -1,92 +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.products.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.products.model.api.Product; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.products.ui.ProductsUi; -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 ProductIdentifierRenderer extends TextWithButtonRenderer { - - private static final String IDENTIFIER_EMPTY = ""; //$NON-NLS-1$ - - private final ProductRegistry registry; - - @Inject - public ProductIdentifierRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - registry = viewContext.getService(ProductRegistry.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.product(id); - } - } catch (DatabindingFailedException e) { - getReportService().report(new DatabindingFailedReport(e)); - } - Product descriptor = ProductsUi.selectProduct(shell, registry, initial); - if (descriptor != null) { - String identifier = descriptor.getIdentifier(); - if (identifier != null) { - text.setText(identifier); - } - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionKeyRenderer.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionKeyRenderer.java deleted file mode 100644 index 91dc006d8..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionKeyRenderer.java +++ /dev/null @@ -1,62 +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.products.emfforms.renderers; - -import java.nio.file.Path; -import java.nio.file.Paths; - -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.lic.base.BaseLicensedProduct; -import org.eclipse.passage.lic.base.io.FileNameFromLicensedProduct; -import org.eclipse.passage.lic.base.io.UserHomeProductResidence; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -import org.eclipse.passage.loc.internal.api.workspace.Keys; -import org.eclipse.passage.loc.internal.api.workspace.OperatorWorkspace; -import org.eclipse.passage.loc.workbench.emfforms.renderers.FileContentRenderer; - -public abstract class ProductVersionKeyRenderer extends FileContentRenderer { - - protected final OperatorWorkspace workspace; - - @Inject - public ProductVersionKeyRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider, OperatorGearSupplier gear) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider, - ProductVersion.class); - this.workspace = gear.get().workspace(); - } - - @Override - protected String extractFilePath(String value, ProductVersion observed) { - BaseLicensedProduct product = new BaseLicensedProduct(// - observed.getProduct().getIdentifier(), observed.getVersion()); - Path dir = new Keys.Smart(workspace.keys()).existing(product)// - .map(Paths::get)// - .map(Path::getParent)// - .orElseGet(new UserHomeProductResidence(product)); - return dir.resolve(new FileNameFromLicensedProduct(product, this::getFileExtension).get()).toString(); - } - - protected abstract String getFileExtension(); - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionRenderer.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionRenderer.java deleted file mode 100644 index 482a5c9bc..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/ProductVersionRenderer.java +++ /dev/null @@ -1,78 +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.products.emfforms.renderers; - -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.lic.products.model.api.ProductVersion; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.products.ui.ProductsUi; -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 ProductVersionRenderer extends TextWithButtonRenderer { - - private static final String IDENTIFIER_EMPTY = ""; //$NON-NLS-1$ - - private final ProductRegistry registry; - - @Inject - public ProductVersionRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - registry = viewContext.getService(ProductRegistry.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(); - ProductVersion descriptor = ProductsUi.selectProductVersion(shell, registry); - if (descriptor != null) { - String identifier = descriptor.getVersion(); - if (identifier != null) { - text.setText(identifier); - } - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRenderer.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRenderer.java deleted file mode 100644 index 332ee49ae..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRenderer.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 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.products.emfforms.renderers; - -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.lic.base.io.PassageFileExtension; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; - -public final class PublicKeyRenderer extends ProductVersionKeyRenderer { - - private final PassageFileExtension extention = new PassageFileExtension.PublicKey(); - - @Inject - public PublicKeyRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider, OperatorGearSupplier gear) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider, - gear); - } - - @Override - protected String getFileExtension() { - return extention.get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRendererService.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRendererService.java deleted file mode 100644 index d70eaaf9b..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/PublicKeyRendererService.java +++ /dev/null @@ -1,54 +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.products.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.products.model.meta.ProductsPackage; -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 PublicKeyRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public PublicKeyRendererService() { - super(PublicKeyRenderer.class, ProductsPackage.eINSTANCE.getProductVersion_InstallationToken()); - } - - @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.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/RestrictionLevelRendererService.java b/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/RestrictionLevelRendererService.java deleted file mode 100644 index cad0f4fb3..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/src/org/eclipse/passage/loc/products/emfforms/renderers/RestrictionLevelRendererService.java +++ /dev/null @@ -1,55 +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.products.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.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.workbench.emfforms.renderers.RestrictionLevelRenderer; -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 RestrictionLevelRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public RestrictionLevelRendererService() { - super(RestrictionLevelRenderer.class, ProductsPackage.eINSTANCE.getProductVersionFeature_RestrictionLevel()); - } - - @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.products.emfforms/viewmodels/ProductLine.view b/bundles/org.eclipse.passage.loc.products.emfforms/viewmodels/ProductLine.view deleted file mode 100644 index ad0973538..000000000 --- a/bundles/org.eclipse.passage.loc.products.emfforms/viewmodels/ProductLine.view +++ /dev/null @@ -1,20 +0,0 @@ - - - - /org.eclipse.passage.lic.products.ecore/model/products.ecore - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.ui/.classpath b/bundles/org.eclipse.passage.loc.products.ui/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.ui/.project b/bundles/org.eclipse.passage.loc.products.ui/.project deleted file mode 100644 index 42c77b256..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.products.ui - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - org.eclipse.pde.api.tools.apiAnalysisBuilder - - - - - org.eclipse.pde.ds.core.builder - - - - - - 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.products.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.products.ui/META-INF/MANIFEST.MF deleted file mode 100644 index c74b9462a..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,32 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.products.ui -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.products.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.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.0.0", - org.eclipse.passage.lic.keys.model;bundle-version="0.0.0", - org.eclipse.passage.lic.products.e4.ui;bundle-version="0.0.0", - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.equinox;bundle-version="0.0.0", - org.eclipse.passage.loc.products.core;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.loc.workbench;bundle-version="0.0.0" -Import-Package: javax.inject;version="1.0.0" -Export-Package: org.eclipse.passage.loc.internal.products.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui", - org.eclipse.passage.loc.products.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.licenses.ui,org.eclipse.passage.loc.products.emfforms", - org.eclipse.passage.loc.products.ui.handlers;x-internal:=true -Service-Component: OSGI-INF/org.eclipse.passage.loc.internal.products.ui.ProductsInstanceSupply.xml -Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.loc.products.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.products.ui/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 8ac3bba18..000000000 --- a/bundles/org.eclipse.passage.loc.products.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 Products 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.loc.products.ui/OSGI-INF/org.eclipse.passage.loc.internal.products.ui.ProductsInstanceSupply.xml b/bundles/org.eclipse.passage.loc.products.ui/OSGI-INF/org.eclipse.passage.loc.internal.products.ui.ProductsInstanceSupply.xml deleted file mode 100644 index 2a7dfb6af..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/OSGI-INF/org.eclipse.passage.loc.internal.products.ui.ProductsInstanceSupply.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.ui/about.html b/bundles/org.eclipse.passage.loc.products.ui/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.products.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.products.ui/build.properties b/bundles/org.eclipse.passage.loc.products.ui/build.properties deleted file mode 100644 index b9fc0df7e..000000000 --- a/bundles/org.eclipse.passage.loc.products.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.products.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.products.ui/fragment.e4xmi deleted file mode 100644 index e3c7f34bb..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/fragment.e4xmi +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FORCE_TEXT - - - - diff --git a/bundles/org.eclipse.passage.loc.products.ui/plugin.xml b/bundles/org.eclipse.passage.loc.products.ui/plugin.xml deleted file mode 100644 index d266fa8b1..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/plugin.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/ProductsInstanceSupply.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/ProductsInstanceSupply.java deleted file mode 100644 index 391fdfa44..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/ProductsInstanceSupply.java +++ /dev/null @@ -1,38 +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.internal.products.ui; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.products.model.api.Product; -import org.eclipse.passage.lic.products.model.api.ProductLine; -import org.eclipse.passage.loc.internal.api.ClassSupply; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.osgi.service.component.annotations.Component; - -@Component -public final class ProductsInstanceSupply implements ClassSupply { - - @Override - public Optional> find(Class clazz, MandatoryService context) { - if (ProductLine.class.isAssignableFrom(clazz)) { - return Optional.of(new SupplyProductLine(context)); - } - if (Product.class.isAssignableFrom(clazz)) { - return Optional.of(new SupplyProduct(context)); - } - return Optional.empty(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProduct.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProduct.java deleted file mode 100644 index 7cacf867d..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProduct.java +++ /dev/null @@ -1,66 +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.internal.products.ui; - -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.products.model.api.Product; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.ui.i18n.ProductsUiMessages; -import org.eclipse.passage.loc.internal.workbench.SelectRequest; -import org.eclipse.passage.loc.internal.workbench.SupplySelectRequest; -import org.eclipse.passage.loc.jface.dialogs.Appearance; - -/** - * Selects or creates {@link ProductDescriptor}. Will return either - * {@link Optional} with selected/created license plan or - * {@link Optional#empty()} - * - */ -public final class SelectProduct extends SupplySelectRequest { - - public SelectProduct(MandatoryService context) { - this(context, Optional.empty()); - } - - public SelectProduct(MandatoryService context, Optional selection) { - super(context, selection); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(Product.class, domain(), input(), appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(ProductRegistry.class).products().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(ProductsUiMessages.ProductsUi_select_product, // - () -> LicensingImages.getImage(ProductsPackage.eINSTANCE.getProduct().getName()), labels()); - } - - private String domain() { - return ProductsPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductLine.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductLine.java deleted file mode 100644 index 65ac747be..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductLine.java +++ /dev/null @@ -1,59 +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.internal.products.ui; - -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.products.model.api.ProductLine; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.ui.i18n.ProductsUiMessages; -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 ProductLineDescriptor} from the - * given {@link MandatoryService}. - * - */ -public final class SelectProductLine extends SupplySelectRequest { - - public SelectProductLine(MandatoryService context) { - super(context); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(ProductLine.class, domain(), input(), appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(ProductRegistry.class).productLines().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(ProductsUiMessages.ProductsUi_select_product_line, // - () -> LicensingImages.getImage(ProductsPackage.eINSTANCE.getProductLine().getName()), labels()); - } - - private String domain() { - return ProductsPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductVersion.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductVersion.java deleted file mode 100644 index e6927af61..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SelectProductVersion.java +++ /dev/null @@ -1,66 +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.internal.products.ui; - -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.ui.i18n.ProductsUiMessages; -import org.eclipse.passage.loc.internal.workbench.SelectRequest; -import org.eclipse.passage.loc.internal.workbench.SupplySelectRequest; -import org.eclipse.passage.loc.jface.dialogs.Appearance; - -/** - * Selects or creates {@link ProductVersionDescriptor}. Will return either - * {@link Optional} with selected/created license plan or - * {@link Optional#empty()} - * - */ -public final class SelectProductVersion extends SupplySelectRequest { - - public SelectProductVersion(MandatoryService context) { - this(context, Optional.empty()); - } - - public SelectProductVersion(MandatoryService context, Optional selection) { - super(context, selection); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(ProductVersion.class, domain(), input(), () -> initial, appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(ProductRegistry.class).productVersions().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(ProductsUiMessages.ProductsUi_select_product_version, // - () -> LicensingImages.getImage(ProductsPackage.eINSTANCE.getProductVersion().getName()), labels()); - } - - private String domain() { - return ProductsPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProduct.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProduct.java deleted file mode 100644 index 9ba8698b2..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProduct.java +++ /dev/null @@ -1,37 +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.internal.products.ui; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.products.model.api.Product; -import org.eclipse.passage.lic.products.model.api.ProductLine; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.eclipse.passage.loc.internal.workbench.SelectInner; - -public class SupplyProduct implements InstanceSupply { - - private final MandatoryService context; - - public SupplyProduct(MandatoryService context) { - this.context = context; - } - - @Override - public Optional supply() { - return new SelectInner(new SelectProduct(context).get(), - new SelectProductLine(context).get(), context).get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProductLine.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProductLine.java deleted file mode 100644 index 9e2991640..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/SupplyProductLine.java +++ /dev/null @@ -1,35 +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.internal.products.ui; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.products.model.api.ProductLine; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.eclipse.passage.loc.internal.workbench.SelectRoot; - -public class SupplyProductLine implements InstanceSupply { - - private final MandatoryService context; - - public SupplyProductLine(MandatoryService context) { - this.context = context; - } - - @Override - public Optional supply() { - return new SelectRoot(new SelectProductLine(context).get(), context).get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.java deleted file mode 100644 index cad3b1b3a..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.java +++ /dev/null @@ -1,32 +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.products.ui.i18n; - -import org.eclipse.osgi.util.NLS; - -public class ProductsUiMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.products.ui.i18n.ProductsUiMessages"; //$NON-NLS-1$ - public static String ProductExportHandler_message_error; - public static String ProductExportHandler_title_error; - public static String ProductExportHandler_title_ok; - public static String ProductsUi_select_product; - public static String ProductsUi_select_product_line; - public static String ProductsUi_select_product_version; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, ProductsUiMessages.class); - } - - private ProductsUiMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.properties b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.properties deleted file mode 100644 index c0b2ab123..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/internal/products/ui/i18n/ProductsUiMessages.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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 -############################################################################### - -ProductExportHandler_message_error=Error during product key export -ProductExportHandler_title_error=Error -ProductExportHandler_title_ok=Product Key Export -ProductsUi_select_product=Select Product -ProductsUi_select_product_line=Select Product Line -ProductsUi_select_product_version=Select Product Version diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/ProductsUi.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/ProductsUi.java deleted file mode 100644 index 75c6757a1..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/ProductsUi.java +++ /dev/null @@ -1,54 +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.products.ui; - -import java.util.Collection; -import java.util.Optional; - -import org.eclipse.passage.lic.products.model.api.Product; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.internal.products.ProductRegistry; -import org.eclipse.passage.loc.internal.products.ui.i18n.ProductsUiMessages; -import org.eclipse.passage.loc.workbench.LocWokbench; -import org.eclipse.swt.widgets.Shell; - -public class ProductsUi { - - public static final String BUNDLE_SYMBOLIC_NAME = "org.eclipse.passage.loc.products.ui"; //$NON-NLS-1$ - - public static final String PERSPECTIVE_MAIN = BUNDLE_SYMBOLIC_NAME + '.' + "perspective.main"; //$NON-NLS-1$ - - public static Product selectProduct(Shell shell, ProductRegistry registry, Optional initial) { - return LocWokbench.selectClassifier(shell, // - ProductsPackage.eINSTANCE.getProduct().getName(), // - ProductsUiMessages.ProductsUi_select_product, // - registry.products(), // - initial, // - Product.class); - } - - public static ProductVersion selectProductVersion(Shell shell, ProductRegistry registry) { - String classifier = ProductsPackage.eINSTANCE.getProductVersion().getName(); - String title = ProductsUiMessages.ProductsUi_select_product_line; - Collection input = registry.productVersions(); - Class clazz = ProductVersion.class; - return LocWokbench.selectClassifier(shell, // - classifier, // - title, // - input, // - Optional.empty(), // - clazz); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ConvertKeysHandle.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ConvertKeysHandle.java deleted file mode 100644 index 35dc023bd..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ConvertKeysHandle.java +++ /dev/null @@ -1,26 +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.products.ui.handlers; - -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.loc.internal.products.core.ConvertedKeys; - -@SuppressWarnings("restriction") -public final class ConvertKeysHandle { - - @Execute - public void convert() { - new ConvertedKeys().persist(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/CreateProductLineHandler.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/CreateProductLineHandler.java deleted file mode 100644 index 03163735e..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/CreateProductLineHandler.java +++ /dev/null @@ -1,31 +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.products.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.products.ui.ProductsUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class CreateProductLineHandler { - - @Execute - public void execute(IEclipseContext context) { - String domain = ProductsPackage.eNAME; - String perspectiveId = ProductsUi.PERSPECTIVE_MAIN; - LocWokbench.createDomainResource(context, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/LoadProductLineHandler.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/LoadProductLineHandler.java deleted file mode 100644 index 200174ff2..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/LoadProductLineHandler.java +++ /dev/null @@ -1,30 +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.products.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.products.model.meta.ProductsPackage; -import org.eclipse.passage.loc.products.ui.ProductsUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class LoadProductLineHandler { - - @Execute - public void execute(IEclipseContext eclipseContext) { - String domain = ProductsPackage.eNAME; - String perspectiveId = ProductsUi.PERSPECTIVE_MAIN; - LocWokbench.loadDomainResource(eclipseContext, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ProductExportHandler.java b/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ProductExportHandler.java deleted file mode 100644 index f97277f96..000000000 --- a/bundles/org.eclipse.passage.loc.products.ui/src/org/eclipse/passage/loc/products/ui/handlers/ProductExportHandler.java +++ /dev/null @@ -1,52 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.products.ui.handlers; - -import javax.inject.Named; - -import org.eclipse.core.runtime.IStatus; -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.dialogs.ErrorDialog; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.passage.lic.products.model.api.ProductVersion; -import org.eclipse.passage.loc.internal.equinox.OperatorProductService; -import org.eclipse.passage.loc.internal.products.ui.i18n.ProductsUiMessages; -import org.eclipse.swt.widgets.Shell; - -@SuppressWarnings("restriction") -public class ProductExportHandler { - - @Execute - public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) ProductVersion owner, IEclipseContext context) { - IStatus status = context.get(OperatorProductService.class).createProductKeys(owner); - Shell shell = context.get(Shell.class); - if (status.isOK()) { - String message = status.getMessage(); - MessageDialog.openInformation(shell, ProductsUiMessages.ProductExportHandler_title_ok, message); - } else { - ErrorDialog.openError(shell, ProductsUiMessages.ProductExportHandler_title_error, - ProductsUiMessages.ProductExportHandler_message_error, status); - } - } - - @CanExecute - public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) @Optional ProductVersion version) { - return version != null; - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.core/.classpath b/bundles/org.eclipse.passage.loc.users.core/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.users.core/.project b/bundles/org.eclipse.passage.loc.users.core/.project deleted file mode 100644 index fa7ede120..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.users.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.users.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.users.core/META-INF/MANIFEST.MF deleted file mode 100644 index f35d49d4f..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,25 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.users.core -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.users.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.equinox;bundle-version="0.0.0", - org.eclipse.passage.lic.emf;bundle-version="0.0.0", - org.eclipse.passage.lic.users.model;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.equinox;bundle-version="0.0.0" -Export-Package: org.eclipse.passage.loc.internal.users; - x-friends:="org.eclipse.passage.loc.users.emfforms, - org.eclipse.passage.loc.users.ui, - org.eclipse.passage.loc.dashboard.ui, - org.eclipse.passage.loc.licenses.core, - org.eclipse.passage.loc.report.core, - org.eclipse.passage.loc.report.core.tests", - org.eclipse.passage.loc.internal.users.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.users.core/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.users.core/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index d2d83c106..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/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 Users Core -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.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UserDomainRegistry.xml b/bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UserDomainRegistry.xml deleted file mode 100644 index 047f82b59..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UserDomainRegistry.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UsersSelectionCommandAdvisor.xml b/bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UsersSelectionCommandAdvisor.xml deleted file mode 100644 index 79bb72942..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/OSGI-INF/org.eclipse.passage.loc.internal.users.core.UsersSelectionCommandAdvisor.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.core/about.html b/bundles/org.eclipse.passage.loc.users.core/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.users.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.users.core/build.properties b/bundles/org.eclipse.passage.loc.users.core/build.properties deleted file mode 100644 index 341338601..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/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.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistry.java b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistry.java deleted file mode 100644 index 9c57d1c3a..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistry.java +++ /dev/null @@ -1,31 +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.users; - -import java.util.Collection; -import java.util.Optional; - -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserOrigin; - -public interface UserRegistry { - - Collection userOrigins(); - - Optional userOrigin(String id); - - Collection users(); - - Optional user(String userId); - -} diff --git a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistryEvents.java b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistryEvents.java deleted file mode 100644 index d65fe9a04..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/UserRegistryEvents.java +++ /dev/null @@ -1,112 +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.users; - -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; - -/** - * User registry events and event topic definitions. - * - * @since 0.4.0 - */ -public final class UserRegistryEvents { - - /** - * Base name of all Users events - */ - public static final String USERS_TOPIC_BASE = "org/eclipse/passage/lic/users/registry"; //$NON-NLS-1$ - - /** - * Base name of all User Origin events - */ - public static final String USER_ORIGIN_TOPIC_BASE = USERS_TOPIC_BASE + TOPIC_SEP + "UserOrigin"; //$NON-NLS-1$ - - /** - * User Origin create event - */ - public static final String USER_ORIGIN_CREATE = USER_ORIGIN_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * User Origin read event - */ - public static final String USER_ORIGIN_READ = USER_ORIGIN_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * User Origin update event - */ - public static final String USER_ORIGIN_UPDATE = USER_ORIGIN_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * User Origin delete event - */ - public static final String USER_ORIGIN_DELETE = USER_ORIGIN_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all User events - */ - public static final String USER_TOPIC_BASE = USERS_TOPIC_BASE + TOPIC_SEP + "User"; //$NON-NLS-1$ - - /** - * User create event - */ - public static final String USER_CREATE = USER_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * User read event - */ - public static final String USER_READ = USER_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * User update event - */ - public static final String USER_UPDATE = USER_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * User delete event - */ - public static final String USER_DELETE = USER_TOPIC_BASE + TOPIC_SEP + DELETE; - - /** - * Base name of all User License events - */ - public static final String USER_LICENSE_TOPIC_BASE = USERS_TOPIC_BASE + TOPIC_SEP + "UserLicense"; //$NON-NLS-1$ - - /** - * User License create event - */ - public static final String USER_LICENSE_CREATE = USER_LICENSE_TOPIC_BASE + TOPIC_SEP + CREATE; - - /** - * User License read event - */ - public static final String USER_LICENSE_READ = USER_LICENSE_TOPIC_BASE + TOPIC_SEP + READ; - - /** - * User License update event - */ - public static final String USER_LICENSE_UPDATE = USER_LICENSE_TOPIC_BASE + TOPIC_SEP + UPDATE; - - /** - * User License delete event - */ - public static final String USER_LICENSE_DELETE = USER_LICENSE_TOPIC_BASE + TOPIC_SEP + DELETE; - - private UserRegistryEvents() { - // block - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UserDomainRegistry.java b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UserDomainRegistry.java deleted file mode 100644 index 88792c289..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UserDomainRegistry.java +++ /dev/null @@ -1,213 +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.users.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.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.internal.equinox.events.EquinoxEvent; -import org.eclipse.passage.lic.internal.users.model.util.UsersResourceImpl; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.internal.api.OperatorGearSupplier; -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.api.workspace.Users; -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.eclipse.passage.loc.internal.users.UserRegistry; -import org.eclipse.passage.loc.internal.users.UserRegistryEvents; -import org.eclipse.passage.loc.internal.users.core.i18n.UsersCoreMessages; -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 + '=' + UsersPackage.eNAME, - EditingDomainRegistryAccess.PROPERTY_FILE_EXTENSION + '=' + "users_xmi" }) -public final class UserDomainRegistry extends BaseDomainRegistry - implements UserRegistry, EditingDomainRegistry { - - private final Map origins = new HashMap<>(); - private final Map users = 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); - } - - @Override - @Reference - public void bindGear(OperatorGearSupplier supplier) { - super.bindGear(supplier); - } - - @Override - public void unbindGear(OperatorGearSupplier supplier) { - super.unbindGear(supplier); - } - - @Activate - public void load(Map properties) { - super.activate(properties); - } - - @Deactivate - public void unload(Map properties) { - users.clear(); - origins.clear(); - super.deactivate(properties); - } - - @Override - public String getFileExtension() { - return "users_xmi"; //$NON-NLS-1$ - } - - @Override - public Class getContentClass() { - return UserOrigin.class; - } - - @Override - public String resolveIdentifier(UserOrigin content) { - return content.getIdentifier(); - } - - @Override - public Collection userOrigins() { - return new ArrayList<>(origins.values()); - } - - @Override - public Optional userOrigin(String identifier) { - return Optional.ofNullable(origins.get(identifier)); - } - - @Override - public Collection users() { - return new ArrayList<>(users.values()); - } - - @Override - public Optional user(String identifier) { - return Optional.ofNullable(users.get(identifier)); - } - - @Override - protected DomainContentAdapter createContentAdapter() { - return new UsersDomainRegistryTracker(this); - } - - void registerUserOrigin(UserOrigin origin) { - UserOrigin existing = origins.put(origin.getIdentifier(), origin); - if ((existing != null) && (existing != origin)) { - Platform.getLog(getClass()) - .warn(NLS.bind(UsersCoreMessages.UserDomain_instance_duplication_message, existing, origin)); - } - events().postEvent(new EquinoxEvent(UserRegistryEvents.USER_ORIGIN_CREATE, origin).get()); - origin.getUsers().forEach(u -> registerUser(u)); - } - - void registerUser(User user) { - User existing = users.put(user.getContact().getEmail(), user); - if ((existing != null) && (existing != user)) { - Platform.getLog(getClass()) - .warn(NLS.bind(UsersCoreMessages.UserDomain_instance_duplication_message, existing, user)); - } - events().postEvent(new EquinoxEvent(UserRegistryEvents.USER_CREATE, user).get()); - } - - void unregisterUserOrigin(String id) { - UserOrigin removed = origins.remove(id); - if (removed != null) { - events().postEvent(new EquinoxEvent(UserRegistryEvents.USER_ORIGIN_DELETE, removed).get()); - removed.getUsers().forEach(u -> unregisterUser(u.getContact().getEmail())); - } - } - - void unregisterUser(String userId) { - User removed = users.remove(userId); - if (removed != null) { - events().postEvent(new EquinoxEvent(UserRegistryEvents.USER_DELETE, removed).get()); - } - } - - private EventAdmin events() { - return events.stream().findAny().get(); - } - - @Override - public EClass getContentClassifier() { - return UsersPackage.eINSTANCE.getUserOrigin(); - } - - @Override - public EStructuralFeature getContentIdentifierAttribute() { - return UsersPackage.eINSTANCE.getUserOrigin_Identifier(); - } - - @Override - public EStructuralFeature getContentNameAttribute() { - return UsersPackage.eINSTANCE.getUserOrigin_Name(); - } - - @Override - public void registerContent(UserOrigin content) { - registerUserOrigin(content); - } - - @Override - public void unregisterContent(String identifier) { - unregisterUserOrigin(identifier); - } - - @Override - protected final Resource createResource(URI uri) { - return new UsersResourceImpl(uri); - } - - @Override - protected boolean emfResource(ResourceHandle handle) { - return Users.xmi.equals(handle.type()) || Users.xmi033.equals(handle.type()); - } - - @Override - protected KnownResources knownResources(OperatorWorkspace workspace) { - return workspace.users(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersDomainRegistryTracker.java b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersDomainRegistryTracker.java deleted file mode 100644 index d802cd604..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersDomainRegistryTracker.java +++ /dev/null @@ -1,185 +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.users.core; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.passage.lic.users.model.api.Contact; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.internal.emf.DomainContentAdapter; - -public class UsersDomainRegistryTracker extends DomainContentAdapter { - - public UsersDomainRegistryTracker(UserDomainRegistry registry) { - super(registry); - } - - @Override - public void notifyChanged(Notification notification) { - Object notifier = notification.getNotifier(); - if (notifier instanceof UserOrigin) { - UserOrigin userOrigin = (UserOrigin) notifier; - switch (notification.getFeatureID(UserOrigin.class)) { - case UsersPackage.USER_ORIGIN__IDENTIFIER: - processUserOriginIdentifier(userOrigin, notification); - break; - case UsersPackage.USER_ORIGIN__USERS: - processUserOriginUsers(notification); - break; - default: - break; - } - } else if (notifier instanceof User) { - User user = (User) notifier; - switch (notification.getFeatureID(User.class)) { - case UsersPackage.USER__IDENTIFIER: - processUserIdentifier(user, notification); - break; - case UsersPackage.USER__CONTACT: - processUserContact(user, notification); - break; - default: - break; - } - } else if (notifier instanceof Contact) { - Contact contact = (Contact) notifier; - switch (notification.getFeatureID(Contact.class)) { - case UsersPackage.CONTACT__EMAIL: - processContactEmail(contact, notification); - break; - default: - break; - } - } - super.notifyChanged(notification); - } - - protected void processUserOriginIdentifier(UserOrigin userOrigin, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterUserOrigin(oldValue); - } - if (newValue != null) { - registry.registerUserOrigin(userOrigin); - } - break; - default: - break; - } - } - - protected void processUserOriginUsers(Notification notification) { - Object oldValue = notification.getOldValue(); - Object newValue = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.ADD: - if (newValue instanceof User) { - // FIXME: AF: not yet -// User user = (User) newValue; -// String identifier = user.getIdentifier(); -// if (identifier != null) { -// registry.registerUser(user); -// } - } - break; - case Notification.REMOVE: - if (oldValue instanceof User) { - User user = (User) oldValue; - String identifier = user.getIdentifier(); - if (identifier != null) { - registry.unregisterUser(identifier); - } - } - break; - - default: - break; - } - } - - protected void processUserIdentifier(User user, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterUser(oldValue); - } - if (newValue != null) { - registry.registerUser(user); - } - break; - default: - break; - } - } - - protected void processUserContact(User user, Notification notification) { - Object oldValue = notification.getOldValue(); - Object newValue = notification.getNewValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (newValue instanceof Contact) { - Contact contact = (Contact) newValue; - String email = contact.getEmail(); - if (email != null) { - registry.registerUser(user); - } else { - // FIXME: warning - } - } - break; - case Notification.UNSET: - if (oldValue instanceof User) { - Contact contact = (Contact) oldValue; - String email = contact.getEmail(); - if (email != null) { - registry.unregisterUser(email); - } else { - // FIXME: warning - } - } - break; - - default: - break; - } - } - - protected void processContactEmail(Contact contact, Notification notification) { - String oldValue = notification.getOldStringValue(); - String newValue = notification.getNewStringValue(); - switch (notification.getEventType()) { - case Notification.SET: - if (oldValue != null) { - registry.unregisterUser(oldValue); - } - if (newValue != null) { - EObject eContainer = contact.eContainer(); - if (eContainer instanceof User) { - User user = (User) eContainer; - registry.registerUser(user); - } - } - break; - default: - break; - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersSelectionCommandAdvisor.java b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersSelectionCommandAdvisor.java deleted file mode 100644 index bc651d9a0..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/UsersSelectionCommandAdvisor.java +++ /dev/null @@ -1,66 +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.users.core; - -import java.util.Collections; - -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.emf.SelectionCommandAdvisor; -import org.eclipse.passage.loc.internal.users.UserRegistry; -import org.eclipse.passage.loc.internal.users.core.i18n.UsersCoreMessages; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; - -@Component(property = { EditingDomainRegistryAccess.PROPERTY_DOMAIN_NAME + '=' + UsersPackage.eNAME }) -public class UsersSelectionCommandAdvisor implements SelectionCommandAdvisor { - - private UserRegistry users; - - @Reference - public void bindDomainRegistry(UserRegistry registry) { - this.users = registry; - } - - public void unbindDomainRegistry(UserRegistry registry) { - if (this.users == registry) { - this.users = null; - } - } - - @Override - public String getSelectionTitle(String classifier) { - if (UsersPackage.eINSTANCE.getUserOrigin().getName().equals(classifier)) { - return UsersCoreMessages.UsersSelectionCommandAdvisor_select_user_origin; - } - if (UsersPackage.eINSTANCE.getUser().getName().equals(classifier)) { - return UsersCoreMessages.UsersSelectionCommandAdvisor_select_user; - } - return null; - } - - @Override - public Iterable getSelectionInput(String classifier) { - if (users == null) { - return Collections.emptyList(); - } - if (UsersPackage.eINSTANCE.getUserOrigin().getName().equals(classifier)) { - return users.userOrigins(); - } - if (UsersPackage.eINSTANCE.getUser().getName().equals(classifier)) { - return users.users(); - } - return Collections.emptyList(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.java b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.java deleted file mode 100644 index 5f19c621f..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.java +++ /dev/null @@ -1,30 +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.users.core.i18n; - -import org.eclipse.osgi.util.NLS; - -public class UsersCoreMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.users.core.i18n.UsersCoreMessages"; //$NON-NLS-1$ - public static String UsersSelectionCommandAdvisor_select_user; - public static String UsersSelectionCommandAdvisor_select_user_license; - public static String UsersSelectionCommandAdvisor_select_user_origin; - public static String UserDomain_instance_duplication_message; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, UsersCoreMessages.class); - } - - private UsersCoreMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.properties b/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.properties deleted file mode 100644 index 965bd0b20..000000000 --- a/bundles/org.eclipse.passage.loc.users.core/src/org/eclipse/passage/loc/internal/users/core/i18n/UsersCoreMessages.properties +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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 -############################################################################### - -UsersSelectionCommandAdvisor_select_user=Select User -UsersSelectionCommandAdvisor_select_user_license=Select User License -UsersSelectionCommandAdvisor_select_user_origin=Select User Origin -UserDomain_instance_duplication_message=Duplication of user instances. The existing instance: \"{0}\" will be replaced by: \"{1}\" \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/.classpath b/bundles/org.eclipse.passage.loc.users.emfforms/.classpath deleted file mode 100644 index 1a821310b..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/.project b/bundles/org.eclipse.passage.loc.users.emfforms/.project deleted file mode 100644 index 1029e13b9..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.users.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.users.emfforms/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.users.emfforms/META-INF/MANIFEST.MF deleted file mode 100644 index e4b380b6c..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,41 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.users.emfforms -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.users.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.equinox.common;bundle-version="0.0.0", - org.eclipse.core.databinding;bundle-version="0.0.0", - org.eclipse.jface.databinding;bundle-version="0.0.0", - org.eclipse.emf.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.emfforms.core.services;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core.di;bundle-version="0.0.0", - org.eclipse.emfforms.swt.treemasterdetail;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.core.swt;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.context;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.model;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.model.common;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.template.model;bundle-version="0.0.0", - org.eclipse.emf.ecp.edit;bundle-version="0.0.0", - org.eclipse.emf.ecp.edit.swt;bundle-version="0.0.0", - org.eclipse.emf.ecp.ui.view;bundle-version="0.0.0", - org.eclipse.emf.edit.ui;bundle-version="0.0.0", - org.eclipse.passage.lic.emf;bundle-version="0.0.0", - org.eclipse.passage.lic.users.model;bundle-version="0.0.0", - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.workbench.emfforms;bundle-version="0.0.0", - org.eclipse.passage.loc.users.ui;bundle-version="0.0.0" -Export-Package: org.eclipse.passage.loc.users.emfforms.parts;x-internal:=true, - org.eclipse.passage.loc.users.emfforms.renderers;x-internal:=true -Import-Package: javax.inject -Bundle-ActivationPolicy: lazy -Service-Component: OSGI-INF/*.xml - diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 396b216b6..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/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 Users EMF Forms -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.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionExpressionRendererService.xml b/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionExpressionRendererService.xml deleted file mode 100644 index 21e67db35..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionExpressionRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionTypeRendererService.xml b/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionTypeRendererService.xml deleted file mode 100644 index c90144d64..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.ConditionTypeRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserEmailRendererService.xml b/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserEmailRendererService.xml deleted file mode 100644 index 4a225ac34..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserEmailRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserOriginIdentifierRendererService.xml b/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserOriginIdentifierRendererService.xml deleted file mode 100644 index 48cd64ccb..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/OSGI-INF/org.eclipse.passage.loc.users.emfforms.renderers.UserOriginIdentifierRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/about.html b/bundles/org.eclipse.passage.loc.users.emfforms/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.users.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.users.emfforms/build.properties b/bundles/org.eclipse.passage.loc.users.emfforms/build.properties deleted file mode 100644 index 2be407a6d..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/build.properties +++ /dev/null @@ -1,22 +0,0 @@ -############################################################################### -# Copyright (c) 2018, 2021 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/,\ - .,\ - plugin.xml,\ - OSGI-INF/,\ - viewmodels/,\ - fragment.e4xmi,\ - about.html diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/fragment.e4xmi b/bundles/org.eclipse.passage.loc.users.emfforms/fragment.e4xmi deleted file mode 100644 index 86de2bf51..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/fragment.e4xmi +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/plugin.xml b/bundles/org.eclipse.passage.loc.users.emfforms/plugin.xml deleted file mode 100644 index 4187975ed..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/plugin.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UserOriginContentProvider.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UserOriginContentProvider.java deleted file mode 100644 index abd6e857c..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UserOriginContentProvider.java +++ /dev/null @@ -1,57 +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.users.emfforms.parts; - -import org.eclipse.emf.edit.provider.ComposedAdapterFactory; -import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserGroup; - -public final class UserOriginContentProvider implements ITreeContentProvider { - - private final Object[] nobody = new Object[0]; - private final AdapterFactoryContentProvider delegate; - - public UserOriginContentProvider() { - delegate = new AdapterFactoryContentProvider( - new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE)); - } - - @Override - public Object[] getElements(Object inputElement) { - return getChildren(inputElement); - } - - @Override - public Object[] getChildren(Object parent) { - if (parent instanceof User) { - return nobody; - } - if (parent instanceof UserGroup) { - return nobody; - } - return delegate.getChildren(parent); - } - - @Override - public Object getParent(Object element) { - return delegate.getParent(element); - } - - @Override - public boolean hasChildren(Object element) { - return getChildren(element).length > 0; - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersCreateElementCallback.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersCreateElementCallback.java deleted file mode 100644 index 8b1405bd6..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersCreateElementCallback.java +++ /dev/null @@ -1,41 +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.users.emfforms.parts; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback; -import org.eclipse.passage.lic.users.model.api.LicenseOwner; -import org.eclipse.passage.lic.users.model.meta.UsersFactory; - -public class UsersCreateElementCallback implements CreateElementCallback { - - @Override - public void initElement(EObject parent, EReference reference, EObject newObject) { - if (newObject instanceof LicenseOwner) { - LicenseOwner lo = (LicenseOwner) newObject; - lo.setContact(UsersFactory.eINSTANCE.createContact()); - } - } - - @Override - public boolean beforeCreateElement(Object newElement) { - return true; - } - - @Override - public void afterCreateElement(Object newElement) { - - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersDetailsPart.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersDetailsPart.java deleted file mode 100644 index 96ac69a0c..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/parts/UsersDetailsPart.java +++ /dev/null @@ -1,73 +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.users.emfforms.parts; - -import java.util.Collection; -import java.util.Collections; - -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.emf.ecore.EObject; -import org.eclipse.emf.ecp.common.spi.ChildrenDescriptorCollector; -import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.loc.internal.users.UserRegistryEvents; -import org.eclipse.passage.loc.workbench.emfforms.parts.DetailsView; - -public class UsersDetailsPart extends DetailsView { - - @Inject - public UsersDetailsPart(MPart part, ESelectionService selectionService) { - super(part, selectionService); - } - - @Inject - @Optional - public void showFeatureSet(@UIEventTopic(UserRegistryEvents.USER_ORIGIN_CREATE) UserOrigin input, - IEclipseContext context) { - show(input, context); - } - - @Override - protected ChildrenDescriptorCollector createChildrenDescriptorCollector() { - return new ChildrenDescriptorCollector() { - @Override - public Collection getDescriptors(EObject eObject) { - if (eObject instanceof User) { - // disable UserLicense creation - return Collections.emptyList(); - } - return super.getDescriptors(eObject); - } - - }; - } - - @Override - protected CreateElementCallback getCreateElementCallback() { - return new UsersCreateElementCallback(); - } - - @Override - protected java.util.Optional customizedContentProvider() { - return java.util.Optional.of(new UserOriginContentProvider()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionExpressionRendererService.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionExpressionRendererService.java deleted file mode 100644 index 58e5a39a9..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionExpressionRendererService.java +++ /dev/null @@ -1,55 +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.users.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.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.workbench.emfforms.renderers.ConditionExpressionRenderer; -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 ConditionExpressionRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public ConditionExpressionRendererService() { - super(ConditionExpressionRenderer.class, UsersPackage.eINSTANCE.getUser_PreferredEvaluationExpression()); - } - - @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.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionTypeRendererService.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionTypeRendererService.java deleted file mode 100644 index a713e0e0f..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/ConditionTypeRendererService.java +++ /dev/null @@ -1,55 +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.users.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.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.workbench.emfforms.renderers.ConditionTypeRenderer; -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 ConditionTypeRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public ConditionTypeRendererService() { - super(ConditionTypeRenderer.class, UsersPackage.eINSTANCE.getUser_PreferredEvaluationType()); - } - - @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.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserEmailRendererService.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserEmailRendererService.java deleted file mode 100644 index aaf583a1c..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserEmailRendererService.java +++ /dev/null @@ -1,55 +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.users.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.users.model.meta.UsersPackage; -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 UserEmailRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public UserEmailRendererService() { - super(ValidatedTextRenderer.class, UsersPackage.eINSTANCE.getContact_Email()); - } - - @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.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserOriginIdentifierRendererService.java b/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserOriginIdentifierRendererService.java deleted file mode 100644 index 05e5e2e04..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/src/org/eclipse/passage/loc/users/emfforms/renderers/UserOriginIdentifierRendererService.java +++ /dev/null @@ -1,55 +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.users.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.users.model.meta.UsersPackage; -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 UserOriginIdentifierRendererService extends StructuredFeatureRendererService - implements EMFFormsDIRendererService { - - public UserOriginIdentifierRendererService() { - super(ValidatedTextRenderer.class, UsersPackage.eINSTANCE.getUserOrigin_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.users.emfforms/viewmodels/User.view b/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/User.view deleted file mode 100644 index c5d31f8e0..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/User.view +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.users.ecore/model/users.ecore - diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserGroup.view b/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserGroup.view deleted file mode 100644 index 369eff9bc..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserGroup.view +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.users.ecore/model/users.ecore - diff --git a/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserOrigin.view b/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserOrigin.view deleted file mode 100644 index 4440698cb..000000000 --- a/bundles/org.eclipse.passage.loc.users.emfforms/viewmodels/UserOrigin.view +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - /org.eclipse.passage.lic.users.ecore/model/users.ecore - diff --git a/bundles/org.eclipse.passage.loc.users.ui/.classpath b/bundles/org.eclipse.passage.loc.users.ui/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.users.ui/.project b/bundles/org.eclipse.passage.loc.users.ui/.project deleted file mode 100644 index 1ae8ce7ba..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.users.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.users.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.users.ui/META-INF/MANIFEST.MF deleted file mode 100644 index 8799b86fc..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,32 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.users.ui -Bundle-ManifestVersion: 2 -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-SymbolicName: org.eclipse.passage.loc.users.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.lic.users.e4.ui;bundle-version="0.5.201", - org.eclipse.passage.loc.api;bundle-version="0.6.0", - org.eclipse.passage.loc.products.core;bundle-version="0.6.0", - org.eclipse.passage.loc.users.core;bundle-version="0.5.0";visibility:=reexport, - org.eclipse.passage.loc.workbench;bundle-version="0.0.0" -Import-Package: javax.inject;version="1.0.0" -Export-Package: org.eclipse.passage.loc.internal.users.ui;x-friends:="org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.licenses.ui", - org.eclipse.passage.loc.users.ui;x-friends:="org.eclipse.passage.loc.licenses.ui,org.eclipse.passage.loc.dashboard.ui", - org.eclipse.passage.loc.users.ui.handlers;x-internal:=true -Bundle-ActivationPolicy: lazy -Service-Component: OSGI-INF/org.eclipse.passage.loc.internal.users.ui.UsersInstanceSupply.xml diff --git a/bundles/org.eclipse.passage.loc.users.ui/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.users.ui/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 6fc340568..000000000 --- a/bundles/org.eclipse.passage.loc.users.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 Users 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.loc.users.ui/OSGI-INF/org.eclipse.passage.loc.internal.users.ui.UsersInstanceSupply.xml b/bundles/org.eclipse.passage.loc.users.ui/OSGI-INF/org.eclipse.passage.loc.internal.users.ui.UsersInstanceSupply.xml deleted file mode 100644 index 3e840f199..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/OSGI-INF/org.eclipse.passage.loc.internal.users.ui.UsersInstanceSupply.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.ui/about.html b/bundles/org.eclipse.passage.loc.users.ui/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.users.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.users.ui/build.properties b/bundles/org.eclipse.passage.loc.users.ui/build.properties deleted file mode 100644 index b9fc0df7e..000000000 --- a/bundles/org.eclipse.passage.loc.users.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.users.ui/fragment.e4xmi b/bundles/org.eclipse.passage.loc.users.ui/fragment.e4xmi deleted file mode 100644 index 034fd95b7..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/fragment.e4xmi +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FORCE_TEXT - - - - diff --git a/bundles/org.eclipse.passage.loc.users.ui/plugin.xml b/bundles/org.eclipse.passage.loc.users.ui/plugin.xml deleted file mode 100644 index aa5a0cbfe..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/plugin.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUser.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUser.java deleted file mode 100644 index 6bc2ec59f..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUser.java +++ /dev/null @@ -1,66 +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.internal.users.ui; - -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.internal.users.UserRegistry; -import org.eclipse.passage.loc.internal.users.ui.i18n.UsersUiMessages; -import org.eclipse.passage.loc.internal.workbench.SelectRequest; -import org.eclipse.passage.loc.internal.workbench.SupplySelectRequest; -import org.eclipse.passage.loc.jface.dialogs.Appearance; - -/** - * Selects or creates {@link UserOriginDescriptor}. Will return either - * {@link Optional} with selected/created {@link UserOriginDescriptor} or - * {@link Optional#empty()} - * - */ -public final class SelectUser extends SupplySelectRequest { - - public SelectUser(MandatoryService context) { - this(context, Optional.empty()); - } - - public SelectUser(MandatoryService context, Optional selection) { - super(context, selection); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(User.class, domain(), input(), () -> initial, appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(UserRegistry.class).users().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(UsersUiMessages.SelectUser_title, // - () -> LicensingImages.getImage(UsersPackage.eINSTANCE.getUser().getName()), labels()); - } - - private String domain() { - return UsersPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUserOrigin.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUserOrigin.java deleted file mode 100644 index d0d09f251..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUserOrigin.java +++ /dev/null @@ -1,59 +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.internal.users.ui; - -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.internal.users.UserRegistry; -import org.eclipse.passage.loc.internal.users.ui.i18n.UsersUiMessages; -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 UserOrigin} from the given - * {@link MandatoryService}. - * - */ -public final class SelectUserOrigin extends SupplySelectRequest { - - public SelectUserOrigin(MandatoryService context) { - super(context); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(UserOrigin.class, domain(), input(), appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(UserRegistry.class).userOrigins().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(UsersUiMessages.SelectUserOrigin_title, // - () -> LicensingImages.getImage(UsersPackage.eINSTANCE.getUserOrigin().getName()), labels()); - } - - private String domain() { - return UsersPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUsers.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUsers.java deleted file mode 100644 index b5ab484a2..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SelectUsers.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.internal.users.ui; - -import java.util.Collection; -import java.util.Collections; -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.users.model.api.User; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.internal.users.UserRegistry; -import org.eclipse.passage.loc.internal.users.ui.i18n.UsersUiMessages; -import org.eclipse.passage.loc.internal.workbench.SelectRequest; -import org.eclipse.passage.loc.internal.workbench.SupplySelectRequest; -import org.eclipse.passage.loc.jface.dialogs.Appearance; - -/** - * Selects or creates {@link User}. Will return either - * {@link Optional} with selected/created {@link User} or - * {@link Optional#empty()} - * - */ -public final class SelectUsers extends SupplySelectRequest { - - public SelectUsers(MandatoryService context) { - this(context, Collections.emptyList()); - } - - public SelectUsers(MandatoryService context, Collection selection) { - super(context, selection); - } - - @Override - public SelectRequest get() { - return new SelectRequest<>(User.class, domain(), input(), () -> initial, appearance()); - } - - private Supplier> input() { - return () -> StreamSupport.stream(context.get(UserRegistry.class).users().spliterator(), false)// - .collect(Collectors.toList()); - } - - private Appearance appearance() { - return new Appearance(UsersUiMessages.SelectUser_title, // - () -> LicensingImages.getImage(UsersPackage.eINSTANCE.getUser().getName()), labels()); - } - - private String domain() { - return UsersPackage.eNAME; - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SupplyUserOrigin.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SupplyUserOrigin.java deleted file mode 100644 index feb7f9734..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/SupplyUserOrigin.java +++ /dev/null @@ -1,35 +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.internal.users.ui; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.eclipse.passage.loc.internal.workbench.SelectRoot; - -public class SupplyUserOrigin implements InstanceSupply { - - private final MandatoryService context; - - public SupplyUserOrigin(MandatoryService context) { - this.context = context; - } - - @Override - public Optional supply() { - return new SelectRoot<>(new SelectUserOrigin(context).get(), context).get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/UsersInstanceSupply.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/UsersInstanceSupply.java deleted file mode 100644 index ef81c19a8..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/UsersInstanceSupply.java +++ /dev/null @@ -1,34 +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.internal.users.ui; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.users.model.api.UserOrigin; -import org.eclipse.passage.loc.internal.api.ClassSupply; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.osgi.service.component.annotations.Component; - -@Component -public final class UsersInstanceSupply implements ClassSupply { - - @Override - public Optional> find(Class clazz, MandatoryService context) { - if (UserOrigin.class.isAssignableFrom(clazz)) { - return Optional.of(new SupplyUserOrigin(context)); - } - return Optional.empty(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.java deleted file mode 100644 index 843a8d7a5..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.java +++ /dev/null @@ -1,32 +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.users.ui.i18n; - -import org.eclipse.osgi.util.NLS; - -public class UsersUiMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.users.ui.i18n.UsersUiMessages"; //$NON-NLS-1$ - - public static String ExportCustomersHandler_unavailableMessage; - public static String ExportCustomersHandler_unavailableTitle; - public static String SelectUser_title; - public static String SelectUserOrigin_title; - public static String UsersUi_select_user; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, UsersUiMessages.class); - } - - private UsersUiMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.properties b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.properties deleted file mode 100644 index 798b0f72d..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/internal/users/ui/i18n/UsersUiMessages.properties +++ /dev/null @@ -1,18 +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 -############################################################################### - -ExportCustomersHandler_unavailableTitle=Export is unavailable -ExportCustomersHandler_unavailableMessage=Severe configuration error: no implementation for {0} service found -SelectUser_title=Select User -SelectUserOrigin_title=Select User Origin -UsersUi_select_user=Select User diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/UsersUi.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/UsersUi.java deleted file mode 100644 index e15c0ccf5..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/UsersUi.java +++ /dev/null @@ -1,21 +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.users.ui; - -public class UsersUi { - - public static final String BUNDLE_SYMBOLIC_NAME = "org.eclipse.passage.loc.users.ui"; //$NON-NLS-1$ - - public static final String PERSPECTIVE_MAIN = BUNDLE_SYMBOLIC_NAME + '.' + "perspective.main"; //$NON-NLS-1$ - -} diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/CreateUserOriginHandler.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/CreateUserOriginHandler.java deleted file mode 100644 index c31f19172..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/CreateUserOriginHandler.java +++ /dev/null @@ -1,30 +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.users.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.users.ui.UsersUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class CreateUserOriginHandler { - - @Execute - public void execute(IEclipseContext context) { - String domain = UsersPackage.eNAME; - String perspectiveId = UsersUi.PERSPECTIVE_MAIN; - LocWokbench.createDomainResource(context, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/LoadUserOriginHandler.java b/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/LoadUserOriginHandler.java deleted file mode 100644 index c9e8dd34c..000000000 --- a/bundles/org.eclipse.passage.loc.users.ui/src/org/eclipse/passage/loc/users/ui/handlers/LoadUserOriginHandler.java +++ /dev/null @@ -1,30 +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.users.ui.handlers; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.passage.lic.users.model.meta.UsersPackage; -import org.eclipse.passage.loc.users.ui.UsersUi; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class LoadUserOriginHandler { - - @Execute - public void execute(IEclipseContext eclipseContext) { - String domain = UsersPackage.eNAME; - String perspectiveId = UsersUi.PERSPECTIVE_MAIN; - LocWokbench.loadDomainResource(eclipseContext, domain, perspectiveId); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/.classpath b/bundles/org.eclipse.passage.loc.workbench.emfforms/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/.project b/bundles/org.eclipse.passage.loc.workbench.emfforms/.project deleted file mode 100644 index d7878411e..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.workbench.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.workbench.emfforms/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.workbench.emfforms/META-INF/MANIFEST.MF deleted file mode 100644 index 027ef85a3..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,57 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.workbench.emfforms -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.workbench.emfforms;singleton:=true -Bundle-Version: 3.1.0.qualifier -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Import-Package: javax.annotation;version="1.2.0", - javax.inject, - org.slf4j;version="1.7.36" -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.annotations;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";visibility:=reexport, - 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.control.multireference;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.core.swt;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.template.model;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.util.swt;bundle-version="0.0.0", - org.eclipse.emf.ecp.view.validation;bundle-version="0.0.0", - org.eclipse.emfforms.core.bazaar;bundle-version="0.0.0", - org.eclipse.emfforms.swt.core.di;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.jface;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.api;bundle-version="0.0.0", - 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.loc.api;bundle-version="0.0.0", - org.eclipse.passage.loc.equinox;bundle-version="0.0.0", - org.eclipse.passage.loc.workbench;bundle-version="0.0.0";visibility:=reexport -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Export-Package: org.eclipse.passage.loc.internal.workbench.emfforms;x-internal:=true, - org.eclipse.passage.loc.internal.workbench.emfforms.renderers;x-internal:=true, - org.eclipse.passage.loc.workbench.emfforms.parts; - x-friends:="org.eclipse.passage.loc.features.emfforms, - org.eclipse.passage.loc.floating.emfforms, - org.eclipse.passage.loc.licenses.emfforms, - org.eclipse.passage.loc.products.emfforms, - org.eclipse.passage.loc.users.emfforms, - org.eclipse.passage.loc.agreements.emfforms", - org.eclipse.passage.loc.workbench.emfforms.renderers; - x-friends:="org.eclipse.passage.loc.floating.emfforms, - org.eclipse.passage.loc.licenses.emfforms, - org.eclipse.passage.loc.products.emfforms, - org.eclipse.passage.loc.users.emfforms, - org.eclipse.passage.loc.features.emfforms, - org.eclipse.passage.loc.agreements.emfforms" -Bundle-ActivationPolicy: lazy -Service-Component: OSGI-INF/*.xml diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index fd57330e7..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/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 Workbench EMF Forms -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.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.LocWorkbenchEmfformsMigrator.xml b/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.LocWorkbenchEmfformsMigrator.xml deleted file mode 100644 index ebad2a006..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.LocWorkbenchEmfformsMigrator.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.renderers.ExtendedMultiReferenceSWTRendererService.xml b/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.renderers.ExtendedMultiReferenceSWTRendererService.xml deleted file mode 100644 index 9d77554a1..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/OSGI-INF/org.eclipse.passage.loc.internal.workbench.emfforms.renderers.ExtendedMultiReferenceSWTRendererService.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/about.html b/bundles/org.eclipse.passage.loc.workbench.emfforms/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.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.workbench.emfforms/build.properties b/bundles/org.eclipse.passage.loc.workbench.emfforms/build.properties deleted file mode 100644 index 44e96c449..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/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/,\ - plugin.xml,\ - fragment.e4xmi,\ - about.html diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/fragment.e4xmi b/bundles/org.eclipse.passage.loc.workbench.emfforms/fragment.e4xmi deleted file mode 100644 index 78124cf90..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/fragment.e4xmi +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/plugin.xml b/bundles/org.eclipse.passage.loc.workbench.emfforms/plugin.xml deleted file mode 100644 index 856c6b2d2..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/plugin.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/LocWorkbenchEmfformsMigrator.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/LocWorkbenchEmfformsMigrator.java deleted file mode 100644 index 0c1cd5bbe..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/LocWorkbenchEmfformsMigrator.java +++ /dev/null @@ -1,28 +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.workbench.emfforms; - -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecp.view.spi.model.VViewPackage; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.Component; - -@Component -public final class LocWorkbenchEmfformsMigrator { - - @Activate - public void migrate() { - EPackage.Registry.INSTANCE.put("http://org/eclipse/emf/ecp/view/model/1170", VViewPackage.eINSTANCE); //$NON-NLS-1$ - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/OperatorDialogWrapper.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/OperatorDialogWrapper.java deleted file mode 100644 index 21c20e47a..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/OperatorDialogWrapper.java +++ /dev/null @@ -1,31 +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.workbench.emfforms; - -import org.eclipse.emf.ecp.edit.internal.swt.util.DialogWrapper; -import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.swt.widgets.Shell; - -@SuppressWarnings("restriction") -public class OperatorDialogWrapper implements DialogWrapper { - - @Override - public void openDialog(Dialog dialog, ECPDialogExecutor callBack) { - dialog.create(); - Shell shell = dialog.getShell(); - shell.setSize(Math.max(1000, shell.getSize().x), Math.max(600, shell.getSize().y)); - callBack.handleResult(dialog.open()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.java deleted file mode 100644 index 33c277203..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.java +++ /dev/null @@ -1,42 +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.workbench.emfforms.i18n; - -import org.eclipse.osgi.util.NLS; - -public final class WorkbenchEmfformsMessages extends NLS { - - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.workbench.emfforms.i18n.WorkbenchEmfformsMessages"; //$NON-NLS-1$ - - public static String DetailsView_e_save_title; - - public static String DetailsView_label_details; - public static String TextWithButtonRenderer_button_edit; - public static String ConditionExpressionRenderer_condition_expression; - - public static String ConditionTypeRenderer_not_set; - - public static String FileContentRenderer_button_text; - - public static String FileContentRenderer_e_content_message; - - public static String FileContentRenderer_e_content_title; - - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, WorkbenchEmfformsMessages.class); - } - - private WorkbenchEmfformsMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.properties b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.properties deleted file mode 100644 index a01262c91..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/i18n/WorkbenchEmfformsMessages.properties +++ /dev/null @@ -1,22 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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 -############################################################################### - -DetailsView_e_save_title=Error -DetailsView_label_details=Details -TextWithButtonRenderer_button_edit=Edit... - -ConditionExpressionRenderer_condition_expression=Condition Expression -ConditionTypeRenderer_not_set=Choose an environment for assessment -FileContentRenderer_button_text=Show... -FileContentRenderer_e_content_message=Error -FileContentRenderer_e_content_title=Unable to find content for {0} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRenderer.java deleted file mode 100644 index 0f78ac4df..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRenderer.java +++ /dev/null @@ -1,118 +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.workbench.emfforms.renderers; - -import javax.inject.Inject; - -import org.eclipse.core.databinding.observable.list.IListChangeListener; -import org.eclipse.core.databinding.observable.list.IObservableList; -import org.eclipse.core.databinding.observable.list.ListChangeEvent; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceSWTRenderer; -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.renderer.NoPropertyDescriptorFoundExeption; -import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException; -import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService; -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.EMFFormsDatabinding; -import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider; -import org.eclipse.emfforms.spi.swt.core.layout.EMFFormsSWTLayoutUtil; -import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell; -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IDoubleClickListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -@SuppressWarnings("restriction") -public class ExtendedMultiReferenceSWTRenderer extends MultiReferenceSWTRenderer { - - private Composite compact; - - @Inject - public ExtendedMultiReferenceSWTRenderer(VControl vElement, ViewModelContext viewContext, - ReportService reportService, EMFFormsDatabinding emfFormsDatabinding, - EMFFormsLabelProvider emfFormsLabelProvider, VTViewTemplateProvider vtViewTemplateProvider, - ImageRegistryService imageRegistryService) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider, - imageRegistryService); - } - - @Override - protected Composite createControlComposite(Composite composite) { - compact = super.createControlComposite(composite); - return compact; - } - - protected void updateControlCompositeHeight() { - if (getTableViewer().getTable().isDisposed()) { - return; - } - int computed = getTableViewer().getTable().computeSize(SWT.DEFAULT, SWT.DEFAULT).y; - int hint = computed > getTableHeightHint() ? getTableHeightHint() : computed; - GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).hint(1, hint).applyTo(compact); - } - - @Override - protected Control renderControl(SWTGridCell gridCell, Composite parent) - throws NoRendererFoundException, NoPropertyDescriptorFoundExeption { - Control control = super.renderControl(gridCell, parent); - TableViewer viewer = getTableViewer(); - viewer.addDoubleClickListener(new IDoubleClickListener() { - - @Override - public void doubleClick(DoubleClickEvent event) { - if (getVElement().isEffectivelyReadonly()) { - handleDoubleClick( - (EObject) IStructuredSelection.class.cast(event.getSelection()).getFirstElement()); - } - } - - }); - addRelayoutListener(); - viewer.refresh(true); - updateControlCompositeHeight(); - return control; - } - - private void addRelayoutListener() { - // FIXME: AF: who is removing these listeners? - final IObservableList list = IObservableList.class.cast(getTableViewer().getInput()); - list.addListChangeListener(new IListChangeListener() { - @Override - public void handleListChange(ListChangeEvent event) { - adjustSize(); - } - }); - } - - private void adjustSize() { - updateControlCompositeHeight(); - EMFFormsSWTLayoutUtil.adjustParentSize(compact); - } - - @Override - protected void rootDomainModelChanged() throws DatabindingFailedException { - super.rootDomainModelChanged(); - updateButtonEnabling(); - addRelayoutListener(); - adjustSize(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRendererService.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRendererService.java deleted file mode 100644 index 54fa5724c..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/internal/workbench/emfforms/renderers/ExtendedMultiReferenceSWTRendererService.java +++ /dev/null @@ -1,81 +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.workbench.emfforms.renderers; - -import java.util.Optional; - -import org.eclipse.core.databinding.property.value.IValueProperty; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.EStructuralFeature; -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.model.VDomainModelReference; -import org.eclipse.emf.ecp.view.spi.model.VElement; -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.swt.core.AbstractSWTRenderer; -import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; - -@Component -public final class ExtendedMultiReferenceSWTRendererService implements EMFFormsDIRendererService { - - private EMFFormsDatabinding databinding; - private ReportService report; - - @Reference - protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) { - this.databinding = databindingService; - } - - @Reference - protected void setReportService(ReportService reportService) { - this.report = reportService; - } - - @Override - public double isApplicable(VElement vElement, ViewModelContext context) { - Optional dmr = dmr(vElement); - if (dmr.isEmpty()) { - return NOT_APPLICABLE; - } - IValueProperty property; - try { - property = databinding.getValueProperty(dmr.get(), context.getDomainModel()); - } catch (DatabindingFailedException ex) { - report.report(new DatabindingFailedReport(ex)); - return NOT_APPLICABLE; - } - EStructuralFeature feature = EStructuralFeature.class.cast(property.getValueType()); - if (!feature.isMany() || !EReference.class.isInstance(feature)) { - return NOT_APPLICABLE; - } - return 20; - } - - private Optional dmr(VElement element) { - return Optional.ofNullable(element)// - .filter(VControl.class::isInstance)// - .map(VControl.class::cast)// - .map(VControl::getDomainModelReference); - } - - @Override - public Class> getRendererClass() { - return ExtendedMultiReferenceSWTRenderer.class; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/parts/DetailsView.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/parts/DetailsView.java deleted file mode 100644 index ac8cc0120..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/parts/DetailsView.java +++ /dev/null @@ -1,303 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.workbench.emfforms.parts; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.inject.Inject; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Optional; -import org.eclipse.e4.ui.di.Persist; -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.emf.common.command.BasicCommandStack; -import org.eclipse.emf.common.command.CommandStack; -import org.eclipse.emf.common.command.CommandStackListener; -import org.eclipse.emf.common.notify.AdapterFactory; -import org.eclipse.emf.common.notify.Notifier; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecp.common.spi.ChildrenDescriptorCollector; -import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.emfforms.internal.swt.treemasterdetail.defaultprovider.DefaultDeleteActionBuilder; -import org.eclipse.emfforms.spi.swt.treemasterdetail.MenuProvider; -import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailComposite; -import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailMenuListener; -import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailSWTFactory; -import org.eclipse.emfforms.spi.swt.treemasterdetail.actions.ActionCollector; -import org.eclipse.emfforms.spi.swt.treemasterdetail.actions.MasterDetailAction; -import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.dialogs.ErrorDialog; -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.jface.layout.GridLayoutFactory; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.passage.lic.emf.resource.ExtractEObject; -import org.eclipse.passage.lic.emf.resource.ExtractResource; -import org.eclipse.passage.loc.internal.workbench.emfforms.i18n.WorkbenchEmfformsMessages; -import org.eclipse.passage.loc.workbench.LocWokbench; -import org.eclipse.passage.loc.workbench.viewers.DomainRegistryLabelProvider; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Menu; - -@SuppressWarnings("restriction") -public class DetailsView { - - private final MPart part; - - private Composite content; - - // TreeMasterDetailComposite implies the Resource has root EObject - private final List root; - - private final CommandStackListener dirtyStackListener; - private final ISelectionChangedListener selectionChangedListener; - private CommandStack commandStack; - - @Inject - public DetailsView(MPart part, ESelectionService selectionService) { - root = new ArrayList<>(); - this.part = part; - this.dirtyStackListener = e -> { - Object source = e.getSource(); - if (source instanceof BasicCommandStack) { - BasicCommandStack stack = (BasicCommandStack) source; - part.setDirty(stack.isSaveNeeded()); - } - }; - this.selectionChangedListener = e -> { - ISelection selection = e.getSelection(); - if (selection instanceof IStructuredSelection) { - IStructuredSelection structured = (IStructuredSelection) selection; - selectionService.setSelection(structured.getFirstElement()); - } - }; - } - - @PostConstruct - public void createComposite(Composite parent) { - content = new Composite(parent, SWT.NONE); - content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); - content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create()); - content.setLayoutData(GridDataFactory.fillDefaults().create()); - } - - @Inject - @Optional - protected void subscribeTopicShow(@UIEventTopic(LocWokbench.TOPIC_SHOW) Notifier input, IEclipseContext context) { - show(input, context); - } - - protected void show(Notifier input, IEclipseContext context) { - if (content == null || content.isDisposed()) { - return; - } - if (input == null) { - return; - } - root.clear(); - new ExtractEObject().apply(input).ifPresent(root::add); - java.util.Optional resource = new ExtractResource().apply(input); - configurePart(resource, context); - Control[] children = content.getChildren(); - for (Control control : children) { - control.dispose(); - } - if (!root.isEmpty() && resource.isPresent()) { - try { - TreeMasterDetailComposite rootView = createRootView(content, resource.get(), getCreateElementCallback(), - context); - TreeViewer viewer = rootView.getSelectionProvider(); - viewer.addSelectionChangedListener(selectionChangedListener); - viewer.refresh(); - EObject reveal = root.get(0); - while (reveal != null) { - viewer.reveal(reveal); - if (viewer.testFindItem(reveal) != null) { - break; - } - reveal = reveal.eContainer(); - } - if (reveal == null) { - return; - } - - rootView.setSelection(new StructuredSelection(reveal)); - } catch (final Exception e) { - e.printStackTrace(); - } - } - content.layout(); - } - - protected TreeMasterDetailComposite createRootView(Composite parent, Object editorInput, - CreateElementCallback createElementCallback, IEclipseContext context) { - final Composite composite = new Composite(parent, SWT.NONE); - composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); - - composite.setLayout(new FormLayout()); - - final FormData treeMasterDetailLayoutData = new FormData(); - treeMasterDetailLayoutData.top = new FormAttachment(0); - treeMasterDetailLayoutData.left = new FormAttachment(0); - treeMasterDetailLayoutData.right = new FormAttachment(100); - treeMasterDetailLayoutData.bottom = new FormAttachment(100); - final TreeMasterDetailComposite treeMasterDetail = createTreeMasterDetail(composite, editorInput, - createElementCallback); - treeMasterDetail.setLayoutData(treeMasterDetailLayoutData); - TreeViewer viewer = treeMasterDetail.getSelectionProvider(); - customizedLabelProvider().ifPresent(viewer::setLabelProvider); - customizedContentProvider().ifPresent(viewer::setContentProvider); - viewer.setLabelProvider(new DomainRegistryLabelProvider()); - - return treeMasterDetail; - } - - protected java.util.Optional customizedLabelProvider() { - return java.util.Optional.of(new DomainRegistryLabelProvider()); - } - - protected java.util.Optional customizedContentProvider() { - return java.util.Optional.empty(); - } - - protected TreeMasterDetailComposite createTreeMasterDetail(final Composite composite, Object editorInput, - final CreateElementCallback createElementCallback) { - ChildrenDescriptorCollector childrenDescriptorCollector = createChildrenDescriptorCollector(); - MenuProvider menuProvider = createMenuProvider(childrenDescriptorCollector, createElementCallback); - final TreeMasterDetailComposite treeMasterDetail = TreeMasterDetailSWTFactory - .fillDefaults(composite, SWT.NONE, editorInput) // - .customizeCildCreation(createElementCallback) // - .customizeMenu(menuProvider)// - .create(); - return treeMasterDetail; - } - - protected MenuProvider createMenuProvider(ChildrenDescriptorCollector childrenDescriptorCollector, - final CreateElementCallback createElementCallback) { - MenuProvider menuProvider = new MenuProvider() { - @Override - public Menu getMenu(TreeViewer treeViewer, EditingDomain editingDomain) { - final MenuManager menuMgr = new MenuManager(); - menuMgr.setRemoveAllWhenShown(true); - final List masterDetailActions = ActionCollector.newList() - .addCutAction(editingDomain).addCopyAction(editingDomain).addPasteAction(editingDomain) - .getList(); - menuMgr.addMenuListener(new TreeMasterDetailMenuListener(childrenDescriptorCollector, menuMgr, - treeViewer, editingDomain, masterDetailActions, createElementCallback, - new DefaultDeleteActionBuilder())); - final Menu menu = menuMgr.createContextMenu(treeViewer.getControl()); - return menu; - - } - }; - return menuProvider; - } - - protected void configurePart(java.util.Optional resource, IEclipseContext context) { - resource.// - flatMap(new ExtractEObject())// - .map(AdapterFactoryEditingDomain::getEditingDomainFor)// - .filter(AdapterFactoryEditingDomain.class::isInstance)// - .map(AdapterFactoryEditingDomain.class::cast)// - .ifPresent(d -> configureCommandStack(d, context)); - if (!resource.isEmpty()) { - URI uri = resource.get().getURI(); - if (uri != null) { - part.setLabel(uri.lastSegment()); - part.setTooltip(String.valueOf(uri)); - } - } else { - part.setLabel(WorkbenchEmfformsMessages.DetailsView_label_details); - } - } - - protected void configureCommandStack(AdapterFactoryEditingDomain domain, IEclipseContext context) { - AdapterFactory adapters = domain.getAdapterFactory(); - context.set(EditingDomain.class, domain); - context.set(AdapterFactory.class, adapters); - if (commandStack == null) { - commandStack = domain.getCommandStack(); - commandStack.addCommandStackListener(dirtyStackListener); - } - commandStack.flush(); - } - - @PreDestroy - public void dispose() { - if (commandStack != null) { - commandStack.removeCommandStackListener(dirtyStackListener); - } - } - - @Persist - public void save() { - if (root.isEmpty()) { - part.setDirty(false); - return; - } - Resource eResource = root.get(0).eResource(); - if (eResource != null) { - try { - eResource.save(new HashMap<>()); - if (commandStack instanceof BasicCommandStack) { - BasicCommandStack basicCommandStack = (BasicCommandStack) commandStack; - basicCommandStack.saveIsDone(); - part.setDirty(basicCommandStack.isSaveNeeded()); - } - } catch (IOException e) { - String message = WorkbenchEmfformsMessages.DetailsView_e_save_title; - IStatus error = new Status(IStatus.ERROR, getClass(), message, e); - ErrorDialog.openError(content.getShell(), message, message, error); - } - } - } - - /** - * - * @return - * - * @since 0.5.0 - */ - protected ChildrenDescriptorCollector createChildrenDescriptorCollector() { - return new ChildrenDescriptorCollector(); - } - - protected CreateElementCallback getCreateElementCallback() { - return null; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ComboControlRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ComboControlRenderer.java deleted file mode 100644 index 525a11df5..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ComboControlRenderer.java +++ /dev/null @@ -1,47 +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.workbench.emfforms.renderers; - -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.jface.layout.GridDataFactory; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -public abstract class ComboControlRenderer extends WithComboRenderer { - - @Inject - public ComboControlRenderer(VControl element, ViewModelContext context, ReportService report, - EMFFormsDatabinding databinding, EMFFormsLabelProvider labels, VTViewTemplateProvider templates) { - super(element, context, report, databinding, labels, templates); - } - - @Override - protected final Control createSWTControl(Composite parent) { - createCombo(parent); - GridDataFactory.fillDefaults()// - .align(SWT.FILL, SWT.FILL)// - .grab(false, false)// - .span(2, 1)// - .applyTo(combo); - return combo; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionExpressionRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionExpressionRenderer.java deleted file mode 100644 index 585f91807..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionExpressionRenderer.java +++ /dev/null @@ -1,75 +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.workbench.emfforms.renderers; - -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.jface.dialogs.Dialog; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.loc.internal.workbench.emfforms.i18n.WorkbenchEmfformsMessages; -import org.eclipse.passage.loc.workbench.dialogs.ManageTextValuesDialog; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -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 ConditionExpressionRenderer extends TextWithButtonRenderer { - - private static final String EXPRESSION_EMPTY = ""; //$NON-NLS-1$ - private static final String EXPRESSION_SEPARATOR = ";"; //$NON-NLS-1$ - - @Inject - public ConditionExpressionRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - } - - @Override - protected Control createSWTControl(Composite parent) { - Control control = super.createSWTControl(parent); - button.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - Shell shell = Display.getDefault().getActiveShell(); - ManageTextValuesDialog dialog = new ManageTextValuesDialog(shell, getCurrentValue(), - EXPRESSION_SEPARATOR); - dialog.create(); - Shell dialogShell = dialog.getShell(); - dialogShell.setText(WorkbenchEmfformsMessages.ConditionExpressionRenderer_condition_expression); - Image image = LicensingImages.getImage(LicensingImages.IMG_DEFAULT); - dialogShell.setImage(image); - if (dialog.open() == Dialog.OK) { - text.setText(dialog.getResultValue()); - } - } - }); - - return control; - } - - @Override - protected String getUnsetText() { - return EXPRESSION_EMPTY; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionTypeRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionTypeRenderer.java deleted file mode 100644 index b6ff42fc3..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ConditionTypeRenderer.java +++ /dev/null @@ -1,76 +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.workbench.emfforms.renderers; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -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.lic.api.EvaluationType; -import org.eclipse.passage.lic.api.LicensingException; -import org.eclipse.passage.lic.api.inspection.RuntimeEnvironment; -import org.eclipse.passage.loc.internal.api.OperatorGear; -import org.eclipse.passage.loc.internal.equinox.OperatorGearAware; -import org.eclipse.passage.loc.internal.workbench.emfforms.i18n.WorkbenchEmfformsMessages; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("restriction") -public class ConditionTypeRenderer extends ComboControlRenderer { - - private final Logger log = LoggerFactory.getLogger(getClass()); - private final List environments; - - @Inject - public ConditionTypeRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - Optional> found = Optional.empty(); - try { - found = new OperatorGearAware().withGear(this::names); - } catch (LicensingException e) { - log.error("Failed to resolve condition types", e); //$NON-NLS-1$ - } - environments = found.orElseGet(Collections::emptyList); - } - - @Override - protected String getUnsetText() { - return WorkbenchEmfformsMessages.ConditionTypeRenderer_not_set; - } - - @Override - protected List getDefinedValues() { - return new ArrayList<>(environments); - } - - private Optional> names(OperatorGear gear) { - return Optional.of(// - gear.environments().get().services().stream()// - .map(RuntimeEnvironment::id)// - .map(EvaluationType::identifier)// - .collect(Collectors.toList())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ExplainedComboControlRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ExplainedComboControlRenderer.java deleted file mode 100644 index 4b7dc68ab..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ExplainedComboControlRenderer.java +++ /dev/null @@ -1,85 +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.workbench.emfforms.renderers; - -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.jface.layout.GridDataFactory; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.events.SelectionListener; -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 abstract class ExplainedComboControlRenderer extends WithComboRenderer { - - protected StyledText description; - - protected ExplainedComboControlRenderer(VControl element, ViewModelContext context, ReportService report, - EMFFormsDatabinding databinding, EMFFormsLabelProvider labels, VTViewTemplateProvider templates) { - super(element, context, report, databinding, labels, templates); - } - - @Override - protected final Control createSWTControl(Composite parent) { - Composite owner = owner(parent); - createCombo(owner); - createDescription(owner); - bindDescriptioWithCombo(); - layoutPieces(); - return owner; - } - - private void layoutPieces() { - GridDataFactory.fillDefaults()// - .align(SWT.FILL, SWT.FILL)// - .grab(false, false)// - .applyTo(combo); - GridDataFactory.fillDefaults()// - .align(SWT.FILL, SWT.FILL)// - .grab(true, false)// - .applyTo(description); - } - - private void bindDescriptioWithCombo() { - combo.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> describe(combo.getSelectionIndex()))); - } - - private void createDescription(Composite owner) { - description = new StyledText(owner, SWT.READ_ONLY); - description.setBackground(owner.getBackground()); - describeUnset(); - } - - private Composite owner(Composite parent) { - Composite owner = new Composite(parent, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.marginWidth = 0; - layout.marginHeight = 0; - layout.verticalSpacing = 0; - owner.setLayout(layout); - owner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); - return owner; - } - - protected abstract void describeUnset(); - - protected abstract void describe(int index); - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/FileContentRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/FileContentRenderer.java deleted file mode 100644 index d9f29cf35..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/FileContentRenderer.java +++ /dev/null @@ -1,115 +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.workbench.emfforms.renderers; - -import javax.inject.Inject; - -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.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.jface.dialogs.MessageDialog; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.loc.internal.workbench.emfforms.i18n.WorkbenchEmfformsMessages; -import org.eclipse.passage.loc.workbench.dialogs.FileContentDialog; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Button; -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 abstract class FileContentRenderer extends TextWithButtonRenderer { - - private static final String IDENTIFIER_EMPTY = ""; //$NON-NLS-1$ - - private final Class observedClass; - - @Inject - public FileContentRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider, Class observed) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - this.observedClass = observed; - } - - @Override - protected Control createSWTControl(Composite parent) { - Control control = super.createSWTControl(parent); - button.setText(WorkbenchEmfformsMessages.FileContentRenderer_button_text); - button.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - showFileContent(); - } - }); - return control; - } - - @Override - protected Button createButton(Composite parent) { - Button created = super.createButton(parent); - created.setEnabled(true); - return created; - } - - @Override - protected String getUnsetText() { - return IDENTIFIER_EMPTY; - } - - protected void showFileContent() { - Shell shell = Display.getDefault().getActiveShell(); - String currentValue = getCurrentValue(); - String filePath = extractFilePath(currentValue); - if (filePath == null) { - String message = NLS.bind(WorkbenchEmfformsMessages.FileContentRenderer_e_content_title, currentValue); - MessageDialog.openError(shell, WorkbenchEmfformsMessages.FileContentRenderer_e_content_message, message); - return; - } - FileContentDialog dialog = new FileContentDialog(shell, filePath); - dialog.open(); - } - - protected String extractFilePath(String currentValue) { - try { - IObservableValue modelValue = getModelValue(); - if (modelValue instanceof IDecoratingObservable) { - IDecoratingObservable decorating = (IDecoratingObservable) modelValue; - IObservable decorated = decorating.getDecorated(); - if (decorated instanceof IObserving) { - IObserving ipo = (IObserving) decorated; - Object source = ipo.getObserved(); - if (observedClass.isInstance(source)) { - return extractFilePath(currentValue, observedClass.cast(source)); - } - } - } - } catch (DatabindingFailedException e) { - getReportService().report(new DatabindingFailedReport(e)); - } - return null; - } - - protected abstract String extractFilePath(String currentValue, O observed); - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchRuleRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchRuleRenderer.java deleted file mode 100644 index 75723e3f9..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchRuleRenderer.java +++ /dev/null @@ -1,134 +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.workbench.emfforms.renderers; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import javax.inject.Inject; - -import org.eclipse.emf.ecore.EObject; -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.lic.api.conditions.MatchingRule; -import org.eclipse.passage.lic.api.version.SemanticVersion; -import org.eclipse.passage.lic.base.conditions.MatchingRuleCompatible; -import org.eclipse.passage.lic.base.conditions.MatchingRuleDefault; -import org.eclipse.passage.lic.base.conditions.MatchingRuleEquivalent; -import org.eclipse.passage.lic.base.conditions.MatchingRuleGreaterOrEqual; -import org.eclipse.passage.lic.base.conditions.MatchingRulePerfect; -import org.eclipse.passage.lic.base.version.BaseSemanticVersion; -import org.eclipse.passage.lic.base.version.SafeVersion; -import org.eclipse.passage.lic.licenses.model.api.LicensePlanFeature; -import org.eclipse.passage.lic.licenses.model.api.PersonalFeatureGrant; -import org.eclipse.passage.lic.licenses.model.api.VersionMatch; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyleRange; - -public final class MatchRuleRenderer extends ExplainedComboControlRenderer { - - private final List values; - private final List names; - private final MatchingRule unset = new MatchingRuleDefault(); - - @Inject - public MatchRuleRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - this.values = Arrays.asList(// - new MatchingRuleCompatible(), // - new MatchingRuleEquivalent(), // - new MatchingRuleGreaterOrEqual(), // - new MatchingRulePerfect()); - this.names = values.stream().map(MatchingRule::identifier).collect(Collectors.toList()); - } - - @Override - protected List getDefinedValues() { - return names; - } - - @Override - protected String getUnsetText() { - return unset.identifier(); - } - - @Override - protected void describeUnset() { - describe(values.indexOf(unset)); - } - - @Override - protected void describe(int index) { - if (index < 0 || index >= values.size()) { - return; - } - describe(values.get(index), guideVersion()); - - } - - private void describe(MatchingRule rule, SemanticVersion guide) { - MatchingRuleExplained explained = new MatchingRuleExplained(rule, guide); - String text = ""; //$NON-NLS-1$ - List styles = new ArrayList<>(); - for (MatchingRuleExplained.Sample sample : explained.samples()) { - if (!text.isEmpty()) { - text = text + " "; //$NON-NLS-1$ - } - String piece = mark(sample.ok()) + sample.text(); - styles.add(sampleSyle(text.length(), piece, sample.ok())); - text = text + piece; - } - description.setText(text); - styles.forEach(description::setStyleRange); - } - - private String mark(boolean ok) { - return ok ? "\u2713 " : "\u2717 "; //$NON-NLS-1$ //$NON-NLS-2$ - } - - private StyleRange sampleSyle(int from, String sample, boolean ok) { - StyleRange style = new StyleRange(); - style.start = from; - style.length = sample.length(); - style.foreground = combo.getDisplay().getSystemColor(ok ? SWT.COLOR_DARK_GREEN : SWT.COLOR_DARK_RED); - return style; - } - - private SemanticVersion guideVersion() { - return guide()// - .map(v -> new SafeVersion(v).semantic())// - .orElse(new BaseSemanticVersion(1, 2, 3)); - } - - private Optional guide() { - EObject owner = getViewModelContext().getDomainModel(); - if (owner instanceof LicensePlanFeature lpf) { - return Optional.ofNullable(lpf.getFeature().getVersionMatch().getVersion()); - } else if (owner instanceof PersonalFeatureGrant pfg) { - return Optional.ofNullable(pfg.getFeature().getVersionMatch().getVersion()); - } else if (owner instanceof VersionMatch vm) { - return Optional.ofNullable(vm.getVersion()); - } - return Optional.empty(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchingRuleExplained.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchingRuleExplained.java deleted file mode 100644 index 477c82038..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/MatchingRuleExplained.java +++ /dev/null @@ -1,74 +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.workbench.emfforms.renderers; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import org.eclipse.passage.lic.api.conditions.MatchingRule; -import org.eclipse.passage.lic.api.version.SemanticVersion; -import org.eclipse.passage.lic.base.version.BaseSemanticVersion; - -final class MatchingRuleExplained { - - private final List samples; - - public MatchingRuleExplained(MatchingRule rule, SemanticVersion base) { - this.samples = scale(base).stream()// - .map(required -> new Sample(rule, required, base))// - .collect(Collectors.toList()); - } - - private List scale(SemanticVersion base) { - List scale = new ArrayList<>(); - if (base.major() > 0) { - scale.add(new BaseSemanticVersion(base.major() - 1, base.minor(), base.service())); - } - if (base.minor() > 0) { - scale.add(new BaseSemanticVersion(base.major(), base.minor() - 1, base.service())); - } - if (base.service() > 0) { - scale.add(new BaseSemanticVersion(base.major(), base.minor(), base.service() - 1)); - } - scale.add(base); - scale.add(new BaseSemanticVersion(base.major(), base.minor(), base.service() + 1)); - scale.add(new BaseSemanticVersion(base.major(), base.minor() + 1, base.service())); - scale.add(new BaseSemanticVersion(base.major() + 1, base.minor(), base.service())); - return scale; - } - - List samples() { - return samples; - } - - static final class Sample { - - private final boolean ok; - private final SemanticVersion version; - - private Sample(MatchingRule rule, SemanticVersion version, SemanticVersion base) { - this.ok = rule.match(version.toString(), base.toString()); - this.version = version; - } - - boolean ok() { - return ok; - } - - String text() { - return version.toString(); - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/RestrictionLevelRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/RestrictionLevelRenderer.java deleted file mode 100644 index 1783f6785..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/RestrictionLevelRenderer.java +++ /dev/null @@ -1,52 +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.workbench.emfforms.renderers; - -import java.util.ArrayList; -import java.util.List; - -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.lic.api.restrictions.RestrictionLevel; - -public class RestrictionLevelRenderer extends ComboControlRenderer { - - @Inject - public RestrictionLevelRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - } - - @Override - protected String getUnsetText() { - return new RestrictionLevel.Warning().identifier(); - } - - @Override - protected List getDefinedValues() { - List values = new ArrayList<>(); - values.add(new RestrictionLevel.Error().identifier()); - values.add(new RestrictionLevel.Fatal().identifier()); - values.add(new RestrictionLevel.Info().identifier()); - values.add(new RestrictionLevel.Warning().identifier()); - return values; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/StructuredFeatureRendererService.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/StructuredFeatureRendererService.java deleted file mode 100644 index 5f8ed34cc..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/StructuredFeatureRendererService.java +++ /dev/null @@ -1,111 +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 - * ArSysOp - further support - *******************************************************************************/ -package org.eclipse.passage.loc.workbench.emfforms.renderers; - -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.core.databinding.property.value.IValueProperty; -import org.eclipse.emf.ecore.EStructuralFeature; -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.model.VElement; -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.swt.core.AbstractSWTRenderer; -import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService; - -public abstract class StructuredFeatureRendererService implements EMFFormsDIRendererService { - - private final Class> renderer; - private final Iterable features; - private final double priority; - private EMFFormsDatabinding databinding; - private ReportService report; - - protected StructuredFeatureRendererService(Class> renderer, double priority, - EStructuralFeature... features) { - this(renderer, priority, Arrays.asList(features)); - } - - protected StructuredFeatureRendererService(Class> renderer, - EStructuralFeature... features) { - this(renderer, 10, features); - } - - protected StructuredFeatureRendererService(Class> renderer, double priority, - Collection features) { - this.renderer = renderer; - this.priority = priority; - this.features = features; - } - - @Override - public final double isApplicable(VElement vElement, ViewModelContext viewModelContext) { - if (!VControl.class.isInstance(vElement)) { - return NOT_APPLICABLE; - } - final VControl control = (VControl) vElement; - if (control.getDomainModelReference() == null) { - return NOT_APPLICABLE; - } - @SuppressWarnings("rawtypes") - IValueProperty valueProperty; - try { - valueProperty = databinding.getValueProperty(control.getDomainModelReference(), - viewModelContext.getDomainModel()); - } catch (final DatabindingFailedException ex) { - report.report(new DatabindingFailedReport(ex)); - return NOT_APPLICABLE; - } - Object valueType = valueProperty.getValueType(); - if (valueType instanceof EStructuralFeature) { - EStructuralFeature structuralFeature = (EStructuralFeature) valueType; - for (EStructuralFeature f : features) { - if (structuralFeature.equals(f)) { - return priority; - } - } - } - return NOT_APPLICABLE; - } - - @Override - public final Class> getRendererClass() { - return renderer; - } - - protected void bindEMFFormsDatabinding(EMFFormsDatabinding service) { - this.databinding = service; - } - - protected void unbindEMFFormsDatabinding(EMFFormsDatabinding service) { - if (this.databinding == service) { - this.databinding = null; - } - } - - protected void bindReportService(ReportService service) { - this.report = service; - } - - protected void unbindReportService(ReportService service) { - if (this.report == service) { - this.report = null; - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/TextWithButtonRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/TextWithButtonRenderer.java deleted file mode 100644 index f691f2f36..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/TextWithButtonRenderer.java +++ /dev/null @@ -1,149 +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.workbench.emfforms.renderers; - -import javax.inject.Inject; - -import org.eclipse.core.databinding.Binding; -import org.eclipse.core.databinding.UpdateValueStrategy; -import org.eclipse.emf.ecp.view.spi.context.ViewModelContext; -import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer; -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.jface.databinding.swt.ISWTObservableValue; -import org.eclipse.jface.databinding.swt.typed.WidgetProperties; -import org.eclipse.passage.lic.jface.resource.LicensingColorResolver; -import org.eclipse.passage.loc.internal.workbench.emfforms.i18n.WorkbenchEmfformsMessages; -import org.eclipse.passage.loc.jface.LocImages; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Text; - -public abstract class TextWithButtonRenderer extends SimpleControlSWTControlSWTRenderer { - - protected Composite base; - protected Text text; - protected Button button; - - private final LicensingColorResolver licensingColors; - private final LocImages locImages; - - @Inject - public TextWithButtonRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - this.licensingColors = viewContext.getService(LicensingColorResolver.class); - this.locImages = viewContext.getService(LocImages.class); - } - - public LicensingColorResolver getLicensingColors() { - return licensingColors; - } - - public LocImages getLocImages() { - return locImages; - } - - @Override - protected Binding[] createBindings(Control control) throws DatabindingFailedException { - if (control instanceof Text) { - ISWTObservableValue observe = WidgetProperties.text(SWT.Modify).observe(control); - @SuppressWarnings({ "unchecked", "rawtypes" }) - final Binding binding = getDataBindingContext().bindValue(observe, getModelValue(), - withPreSetValidation(new UpdateValueStrategy()), null); - return new Binding[] { binding }; - } - - return new Binding[] {}; - } - - @Override - protected Control createSWTControl(Composite parent) { - base = new Composite(parent, SWT.NONE); - GridLayout layout = new GridLayout(2, false); - layout.marginHeight = 0; - layout.marginWidth = 0; - base.setLayout(layout); - base.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); - base.setFont(parent.getFont()); - - text = createText(base); - button = createButton(base); - return text; - } - - protected Text createText(Composite parent) { - Text value = new Text(parent, SWT.BORDER); - value.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - value.setText(getCurrentValue()); - value.setEditable(false); - return value; - } - - protected Button createButton(Composite parent) { - Button edit = new Button(parent, SWT.PUSH); - edit.setText(WorkbenchEmfformsMessages.TextWithButtonRenderer_button_edit); - edit.setImage(locImages.getImage(LocImages.IMG_TOOL_EDIT)); - edit.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); - edit.setEnabled(!getVElement().isEffectivelyReadonly()); - return edit; - } - - @Override - protected void dispose() { - if (base != null && !base.isDisposed()) { - for (Control control : base.getChildren()) { - if (control != null) { - control.dispose(); - } - } - } - super.dispose(); - } - - protected String getCurrentValue() { - try { - Object value = getModelValue().getValue(); - if (value instanceof String) { - return (String) value; - } - } catch (DatabindingFailedException e) { - getReportService().report(new DatabindingFailedReport(e)); - } - return getUnsetText(); - } - - @Override - protected void setValidationColor(Control control, Color validationColor) { - if (control instanceof Text) { - Text textControl = ((Text) control); - if (textControl.getText().isEmpty()) { - control.setBackground(licensingColors.getColor(LicensingColorResolver.COLOR_VALIDATION_ERROR)); - } else { - control.setBackground(licensingColors.getColor(LicensingColorResolver.COLOR_VALIDATION_OK)); - } - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ValidatedTextRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ValidatedTextRenderer.java deleted file mode 100644 index 27ebf396c..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/ValidatedTextRenderer.java +++ /dev/null @@ -1,119 +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.workbench.emfforms.renderers; - -import javax.inject.Inject; - -import org.eclipse.core.databinding.Binding; -import org.eclipse.core.databinding.UpdateValueStrategy; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.emf.ecp.view.spi.context.ViewModelContext; -import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer; -import org.eclipse.emf.ecp.view.spi.model.VControl; -import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport; -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.EMFFormsDatabinding; -import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider; -import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException; -import org.eclipse.jface.databinding.swt.ISWTObservableValue; -import org.eclipse.jface.databinding.swt.typed.WidgetProperties; -import org.eclipse.passage.lic.jface.resource.LicensingColorResolver; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Text; - -public class ValidatedTextRenderer extends SimpleControlSWTControlSWTRenderer { - - private static final String TEXT_MESSAGE_DEFAULT = ""; //$NON-NLS-1$ - private static final String UNSET_TEXT_DEFAULT = ""; //$NON-NLS-1$ - - private LicensingColorResolver licensingColors; - private Text text; - - @Inject - public ValidatedTextRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService, - EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider, - VTViewTemplateProvider vtViewTemplateProvider) { - super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider); - licensingColors = viewContext.getService(LicensingColorResolver.class); - } - - @Override - protected Binding[] createBindings(Control control) throws DatabindingFailedException { - ISWTObservableValue observed = WidgetProperties.text(SWT.Modify).observe(text); - @SuppressWarnings({ "unchecked", "rawtypes" }) - final Binding binding = getDataBindingContext().bindValue(observed, getModelValue(), - withPreSetValidation(new UpdateValueStrategy()), null); - return new Binding[] { binding }; - } - - @Override - protected void setValidationColor(Control control, Color validationColor) { - if (licensingColors == null) { - return; - } - if (control instanceof Text) { - Text textControl = ((Text) control); - if (textControl.getText().isEmpty()) { - control.setBackground(licensingColors.getColor(LicensingColorResolver.COLOR_VALIDATION_ERROR)); - } else { - control.setBackground(licensingColors.getColor(LicensingColorResolver.COLOR_VALIDATION_OK)); - } - } - } - - @Override - protected Control createSWTControl(Composite parent) { - text = new Text(parent, SWT.BORDER | SWT.READ_ONLY); - final GridData data = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); - text.setLayoutData(data); - text.setBackground(Display.getDefault().getSystemColor(SWT.BACKGROUND)); - text.setText(getTextMessage()); - text.setEditable(true); - return text; - } - - @Override - protected void dispose() { - licensingColors = null; - if (text != null) { - text.dispose(); - } - super.dispose(); - } - - protected String getTextMessage() { - try { - return (String) getEMFFormsLabelProvider() - .getDisplayName(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel()) - .getValue(); - } catch (final NoLabelFoundException ex) { - Status status = new Status(IStatus.ERROR, getClass(), ex.getMessage(), ex); - getReportService().report(new StatusReport(status)); - } - return TEXT_MESSAGE_DEFAULT; - } - - @Override - protected String getUnsetText() { - return UNSET_TEXT_DEFAULT; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/WithComboRenderer.java b/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/WithComboRenderer.java deleted file mode 100644 index c1c2f358d..000000000 --- a/bundles/org.eclipse.passage.loc.workbench.emfforms/src/org/eclipse/passage/loc/workbench/emfforms/renderers/WithComboRenderer.java +++ /dev/null @@ -1,101 +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.workbench.emfforms.renderers; - -import java.util.List; - -import javax.inject.Inject; - -import org.eclipse.core.databinding.Binding; -import org.eclipse.core.databinding.DataBindingContext; -import org.eclipse.core.databinding.UpdateValueStrategy; -import org.eclipse.emf.ecp.view.spi.context.ViewModelContext; -import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer; -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.jface.databinding.swt.ISWTObservableValue; -import org.eclipse.jface.databinding.swt.typed.WidgetProperties; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -public abstract class WithComboRenderer extends SimpleControlSWTControlSWTRenderer { - - protected Combo combo; - - @Inject - public WithComboRenderer(VControl element, ViewModelContext context, ReportService report, - EMFFormsDatabinding databinding, EMFFormsLabelProvider labels, VTViewTemplateProvider templates) { - super(element, context, report, databinding, labels, templates); - } - - @Override - protected final Binding[] createBindings(Control control) throws DatabindingFailedException { - DataBindingContext context = getDataBindingContext(); - ISWTObservableValue observed = WidgetProperties.comboSelection().observe(combo); - @SuppressWarnings({ "unchecked", "rawtypes" }) - Binding binding = context.bindValue(observed, getModelValue(), withPreSetValidation(new UpdateValueStrategy()), - null); - return new Binding[] { binding }; - } - - protected final void createCombo(Composite parent) { - combo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY); - combo.setBackground(parent.getBackground()); - installValues(); - } - - private final void installValues() { - List values = getDefinedValues(); - combo.setItems(values.toArray(new String[values.size()])); - selectCurrentValue(values); - } - - private void selectCurrentValue(List values) { - String current = getCurrentValue(); - if (current == null || current.isEmpty()) { - combo.select(0); - } else { - combo.select(values.indexOf(current)); - } - } - - @Override - protected void dispose() { - if (combo != null) { - combo.dispose(); - } - super.dispose(); - } - - protected abstract List getDefinedValues(); - - protected final String getCurrentValue() { - try { - Object value = getModelValue().getValue(); - if (value instanceof String) { - return (String) value; - } - } catch (DatabindingFailedException e) { - getReportService().report(new DatabindingFailedReport(e)); - } - return getUnsetText(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/.classpath b/bundles/org.eclipse.passage.loc.workbench/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.workbench/.project b/bundles/org.eclipse.passage.loc.workbench/.project deleted file mode 100644 index 5baa7e646..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.workbench - - - - - - 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.workbench/LOC.e4xmi b/bundles/org.eclipse.passage.loc.workbench/LOC.e4xmi deleted file mode 100644 index 31eeb56fb..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/LOC.e4xmi +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FORCE_TEXT - - - FORCE_TEXT - - - - - FORCE_TEXT - - - - - - - - - - - - - - - - type:user - - - type:user - - - type:user - - - type:user - - - type:user - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.workbench/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.workbench/META-INF/MANIFEST.MF deleted file mode 100644 index b9356fa2d..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/META-INF/MANIFEST.MF +++ /dev/null @@ -1,59 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.workbench -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.workbench;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.runtime;bundle-version="0.0.0", - org.eclipse.jface;bundle-version="0.0.0", - org.eclipse.emf.ecore.xmi;bundle-version="0.0.0", - org.eclipse.emf.edit.ui;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", - org.eclipse.e4.core.di;bundle-version="0.0.0", - org.eclipse.e4.core.di.extensions;bundle-version="0.0.0", - org.eclipse.e4.core.services;bundle-version="0.0.0", - org.eclipse.e4.ui.workbench;bundle-version="0.0.0", - org.eclipse.e4.ui.workbench.swt;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.di;bundle-version="0.0.0", - org.eclipse.passage.lic.emf;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.jface;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.lic.products.model;bundle-version="0.0.0";visibility:=reexport, - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.lic.e4.ui;bundle-version="0.0.0" -Import-Package: javax.annotation;version="1.0.0";resolution:=optional, - javax.inject;version="1.0.0", - org.slf4j;version="1.7.36" -Export-Package: org.eclipse.passage.loc.internal.workbench; - x-friends:="org.eclipse.passage.loc.licenses.ui, - org.eclipse.passage.loc.users.ui, - org.eclipse.passage.loc.dashboard.ui, - org.eclipse.passage.loc.products.ui, - org.eclipse.passage.loc.edit.ui", - org.eclipse.passage.loc.internal.workbench.registry;x-friends:="org.eclipse.passage.loc.edit.ui", - org.eclipse.passage.loc.jface;x-friends:="org.eclipse.passage.loc.workbench.emfforms", - org.eclipse.passage.loc.jface.dialogs; - x-friends:="org.eclipse.passage.loc.licenses.ui, - org.eclipse.passage.loc.products.ui, - org.eclipse.passage.loc.users.ui, - org.eclipse.passage.loc.dashboard.ui", - org.eclipse.passage.loc.workbench; - x-friends:="org.eclipse.passage.loc.dashboard.ui, - org.eclipse.passage.loc.features.ui, - org.eclipse.passage.loc.licenses.ui, - org.eclipse.passage.loc.products.ui, - org.eclipse.passage.loc.users.ui, - org.eclipse.passage.loc.workbench.emfforms, - org.eclipse.passage.loc.agreements.ui", - org.eclipse.passage.loc.workbench.dialogs;x-friends:="org.eclipse.passage.loc.workbench.emfforms", - org.eclipse.passage.loc.workbench.handlers;x-internal:=true, - org.eclipse.passage.loc.workbench.viewers;x-friends:="org.eclipse.passage.loc.dashboard.ui,org.eclipse.passage.loc.workbench.emfforms", - org.eclipse.passage.moveto.lic.emf.edit;x-internal:=true -Bundle-ActivationPolicy: lazy -Service-Component: OSGI-INF/*.xml diff --git a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 371e6798a..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,25 +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 Workbench -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\ - -application.name = Passage Licensing Workbench -application.tooltip = Passage Licensing Workbench diff --git a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.lic.internal.inspector.ui.LicensingColorRegistry.xml b/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.lic.internal.inspector.ui.LicensingColorRegistry.xml deleted file mode 100644 index 36ca8037d..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.lic.internal.inspector.ui.LicensingColorRegistry.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassMetadata.xml b/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassMetadata.xml deleted file mode 100644 index 0fc5a83eb..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassMetadata.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassSupply.xml b/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassSupply.xml deleted file mode 100644 index a603aadc4..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocClassSupply.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess.xml b/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess.xml deleted file mode 100644 index b9176572f..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocImageRegistry.xml b/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocImageRegistry.xml deleted file mode 100644 index aed8a0e2d..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/OSGI-INF/org.eclipse.passage.loc.internal.workbench.LocImageRegistry.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/about.html b/bundles/org.eclipse.passage.loc.workbench/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/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.workbench/build.properties b/bundles/org.eclipse.passage.loc.workbench/build.properties deleted file mode 100644 index 3abb019d6..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/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/,\ - .,\ - LOC.e4xmi,\ - OSGI-INF/,\ - images/,\ - about.html diff --git a/bundles/org.eclipse.passage.loc.workbench/images/add.png b/bundles/org.eclipse.passage.loc.workbench/images/add.png deleted file mode 100644 index f84eb93b7c249027ddd75ece6929ee99e1756ef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XVmw_OLn>}1{rUgjo>{eFViuc$kG(hPwtSwLUx|OkKPQ2cP@YBr3J0*bF{W#l#tY`}1{rUgjp4slei4!LhtlrLLoN$x#NMFFizYZ~V zR^Bg|logrJEZfhXX~%YCPDarE#v5IojRr4{ESkxvb5Yu8d9&Tm^CLV?_uU)TMSZn?VI)cH| L)z4*}Q$iB}E`3X$ diff --git a/bundles/org.eclipse.passage.loc.workbench/images/edit.png b/bundles/org.eclipse.passage.loc.workbench/images/edit.png deleted file mode 100644 index d7c8875832545c10139be1939d3f50b58e537e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmV+o0rLKdP)-xA8&lbpgZ;UCWGzmH97$dT^ z_F6#i5W+M~s5$4zFPcX0T07^4VW1`)Y4oo2U*SlPV;q1$@fSc!;rZ+(;g^Do-R7y$Te!q0z_d4%P)ZJDZtJ9J75E z>xtnv9G0FDSm z6*hj_UVzG8#FO!90nf1lp%Si7$5-y1r(8t#8XaUDb zO8>^v7pdY-)R*JE7yB&2&xc$%|9VXH&ydeOrl9O|{uN*VcbI-fUKXBw00000NkvXX Hu0mjfP#Lr` diff --git a/bundles/org.eclipse.passage.loc.workbench/images/error.png b/bundles/org.eclipse.passage.loc.workbench/images/error.png deleted file mode 100644 index 262a76aae5b76954dff562c8c43f5159930e0aa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)Kn!)FbWr37ffHma zS|nuN#&J|@$%W_KBLsXjOyIh%B7*=TfHlq#6M(}4zUqN=+pJSW zguLvJaFhTNo`n+V`+oMTq-F@45eQiAkvuSpt{pUj?H{Du44 zt$mZer5PQ&pk=X5<)rON-qjbP($&}B&)K?hRnCJgj2cUC?VgsaueD%W!e;jHri=O~ zUP;I(mlTG}{{PA|m#?aH-u)Y!@9AA<{HV6XUbto96miM)&l_xgZa=Q!Fko0|H=jdY S_N*4r?F^o-elF{r5}E*tA85@0 diff --git a/bundles/org.eclipse.passage.loc.workbench/images/fatal.png b/bundles/org.eclipse.passage.loc.workbench/images/fatal.png deleted file mode 100644 index 6935eaa07b028ada67f9b13500cf4ad90e28a222..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmV->0fhdEP)Do%QZAjvmh55Xz%1d@6t3CCtri_`{cSV4a4vd1i`_P1EVBKL_(Hj!iQC` zV=5O~$DZ~)&ntT_Cb4zwi064LdoHH05d(pP85pfyL{(K(6ov402MF|ize+?wyC`y$ zSatAe&H*=J4$wrN=V}l1cA|sQjHm>4vS}?bP&#tANBTQPXn(BoFU5M5Z}XV`^PEot Z3;^G)qYR?#K@I=_002ovPDHLkV1icJpa=i} diff --git a/bundles/org.eclipse.passage.loc.workbench/images/info-c.png b/bundles/org.eclipse.passage.loc.workbench/images/info-c.png deleted file mode 100644 index 23996f0b62b03d9653441db00ef098fc57fea502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV)88imsdylEK$AKE z#0yVn3NAnvWJJ=a0HoFfv4M{|8-u+fD+4bZMEdiu{|pE3|7O^7^B0JF0f+;E20efq z0M&e6O@vvX&XJ2jO_&*O14z>spaBuO>NSXh8G zV>190z%T<2zyb^zfDHZo^FJucuo@24a{y$(LQrA>*@kWa%=sYOK%sE? diff --git a/bundles/org.eclipse.passage.loc.workbench/images/info.png b/bundles/org.eclipse.passage.loc.workbench/images/info.png deleted file mode 100644 index 0c20ff19964198220e75faffc2f64775beb789a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)~myBnujnC73FZQ-H=H@caP8P{<|4FhPO@10+QuV3Vz?Xf?a8l<-NYU z@9X#O?ju@-vd_Et!bUK|T*L6wLG@(GAl}aUAEEf00V)5$+1;d?H z*^s(kuf-lQUDqST$i+EduML743Z`1G*9-Tv*^DNW$q#kFFhMPe4_R$#gTa7I(+p)h zjuY>8h!F&tOePYnR;%GvVDZ1JCJ1cXz8d5%2=Fxm%!VXbVMyWz+2}tyaLoeD3ItOO zi4Ku3^~XJ2G|sKJP;o|FrDpody65- z<#NKy<+4zKqPAKsp=vZ5$x(hj9*^#yj|oapMY`~m3a~Qa}xluIVdH0_oXZvr4pMNpT{SL%d zEXX1t&5@CjD5~C@mV#`<<}gkm?qp&h0AS9>0UQ}XUI1ZVU*G>frgT;7xc^Q<_CP7?6$OW97oD6&R>|w~r$Y7W;V+L3Z#0H50qx}?y0n3*!N8vww z_>iHdriLLrJe*E?G^XAPL z2&MxN0LdW(kUEeUMi}6-9Rz;-_`$G#{dzFl)zuX)4$n-CjEp!ngKPr^<}aX{^C14; zzkiK>{`|=b^a3Lb0}+6knfc83@88RS8umjCbOefZf!F{61^_fs_ED%vLLLAB002ov JPDHLkV1n0n0@?kEP)Q5623&mI{M8a~o#tlDgNIXmN=Jru%wE_Z(m?5P5f*yHi20vtCQu!qA~+1D~&33k_yqz1!uPKcAkk%!DNVV)mdKi*{U)$z)Xi-TprR3nScUvnB$tW~z@Miu}yO z%p|5twis9T`5tFhaD94;*L%olXy6G1Q1tsD4X&|xevZSdE7U3# z)65E7E*BOzH<6VjG}$Z=j7B4@jGLw;K^Q2Luu)lS%Y?y_1OmIw;WFj%L*=z;$7U*+097?OzQvL(2 zje_*$JIa2dPww+g7Xfj~9loQ4oZwV#>yv*=2j4$?y03W?7aO*bxLR=71=Q okL`Bb&jdGvfELDGlKmsV07NL znnHg_T{L6!&-m`EEuD^K&M{^x7kBj++Hy+yc#xpW(MoF4%lH@;!d`O>Gmw=4_I}oeDnPy zlpDK{>d4y?WHK2`eCO$XyhaJrOSAa-XAAGPzHqY}5|j^u$FT!Z6!AiPi16GK%(Xvq zt?QQv{l+M!;^T^A2cb|1y{CM*IM3#wT;7`luNS?lk8{TkWLZWomqR!lhOX;eBTgFo z?F+U9iA2H@mr5l>A`z&nifA;-H8Q7CDKwkS+qMKp2WcP0ViCz?l5<5-$c$_@TX38M z0)0CST1T4g434W#s8*{;r_-GK{r&@8*uRZ}ARKF^YV0uUY|SFYtyZhQR;#($76iw; tK#(LUU#V2?F~i$`39mD4iuhjv1^}v_54pg<>vI4A002ovPDHLkV1n^85BUH9 diff --git a/bundles/org.eclipse.passage.loc.workbench/images/new.png b/bundles/org.eclipse.passage.loc.workbench/images/new.png deleted file mode 100644 index 1c5d4fe0a00e3a6d0e703194a57b77b4096db6fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XQaxQ9Ln>}1B{nd{$KU_YqtbA8wz+XrhFHo$-`Qq@OK+Y( z&wnoMpn50og6Km>92652Q!iR@% zZvK~Vlwfg4Qm{BfT8frG!Xp($Tfr+0y5yd>z>m8AAf!MPY8h2fYgHY zfL#Ff^ZZ@TT{vw9flt4`GR(QNjlo^Y6wG(qTLz*MnLq&s@-rdLA%_|ndathr(;&4V zJs`ax0~|mBhHewOW|03uK$c4sOhffJuz*NdXoCPuF$g#6#iM8j*}TTCo&i}8*Z@9O zE(~XbqHM>r(_j}MYvyC+Mo|ay0>k64ui*k9MX>O|rx}zsUIIg4&RRc=Ofkb5{Pz-?r h8E;z&*sPKLuE`JuX<^m%j1Ekl6f;1lkVosPCCo?<4OpBtww>~|IWMLo-I;FWpIN6w3 z8Sa014%WQLx`M$oyW_I>K8}oht zjl(OuyZP0ye^gcVu5TVR;uD8Y_Gi!Y$Z;GpO;h}vrir?)qq?rK{9+GS=zA5A0kyI5|yI(m6uF zFpRUbab<1WiVSq}7K;*S9LIG7Ak~j+WXy&VXfPzo0MbSFPL`Zz_Zro;U78L38t)#Y zqs%D4cXCR?S7PnO`k zHVJN{^!NAn@(8Q@si@saSXa@Ibl}s|(+BI0Kd!HkSh{3M!wWaHl-rI%H|BKmIWY2t z{AQ4t!98O_E_>#)XV26!tWAzd1u{*PxeX*7?j$c^ZF|Vfz{JBag`q=vTWiJ)pt~77 MUHx3vIVCg!0FoV!Z diff --git a/bundles/org.eclipse.passage.loc.workbench/images/product-draft.png b/bundles/org.eclipse.passage.loc.workbench/images/product-draft.png deleted file mode 100644 index 0863d7af999f781663b8cf055333ee581f53c391..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)_Uh$uah2f2D+xfp-;)ZDE zZvx^_7Gx1NHnt_de*KDKVPW|$Cnv{XWo5;1=$k6T%kLPP8K4$4p&0P@@88QnC;u-i zE911VumFqAUGM=&{%61e5}A;B92^`rKz}oUG{1TChGFK+nSbAZ|Ig6v!2^~@r-48W zZa_##$o3yUez<#hcz^?>zP|qZo;`b(F#ml2@!*4BU^VD85L|~F@bl+SkAMIEv51I> zfcej!J!1!oH8K7C*tq2eL<2ev1g*$k2xMnxe{=QfRWQff+xs6dP%lWHZf&$-zVMHS z4JoSs|NRCevw%^#lmQftNZx2DDJl5@bjg1Zc<|r>7=ys~Uw{9n)%5@J%;}k9I_(`N zOb-)Us9N8=d6T`dvGLEthYuO#<>kQ`#O`Qq`t$taK347*C**-Pe}`#6Pe@L{G_abP znRzYH6)}8#eBfyQ^y$+dVDv5lMsx6=KYv0uZ{EBQ!+@Zmpl3kMY#=dM#DD+(T^Jg@ z?|^Fl!{mSl{a(9vtt3beo{)g)U9z{gmw}6m3+^9KS^xoIVPPTU{F0KA0%xP7L{U*u zhUDaA27F+}iWMk)7IX!3=gwsy1%SiA&(H5a19?CYAiw~i*X>?)mJ*-<0000kDG|0r4&vDQ)_Hw_;H@K@&EsP`SSn&zkgs1 zVuQqv7#qK2LUsWM2Zs&N5C#hi3x+pu-Z0FZIrH!DckdWJU%A5YeD!LehZ({6`I32{KLK8Ua;8jPoKaT1VCay7hHpf!Ox#R zJwSmeA|e9jKYR9!{qNtuOfm$`l5m7>L=59EgGJ?Ci6z zUcD-!udmPG?d|<<$BrErmPt!9Fznv_Phrj+rtc3PfE8XyO#J@${rgg2R4zpcM4*!! zN=iz8`~w9R5IlJB0E|K4&-d^D+fq}1)p&T!0Xm%%riTeF?O5Nud6T`dvGLEthYuO# z<>kQ`#BT2B_;dWl3)UMvJn}%Bzr!@3CnP6e8d%ND%)A!piWojVKCl-*efsnVm?D<| z!zB36pFg3SH*emDVL(t&&@-TBHjo$)gZ=gW`*&ez^u7bC`45u=8uWYZ+O?7(Id~uf z)4ODEZ!ZHE7Z=<=ptJx2!otEr$oVBDB?Zn#Ny?(4q72E&$qe|wiWMtR_$=rO=FXkV oKnehdfuEn>e+Ke^AV7ct09a%`qiI}WR{#J207*qoM6N<$f`D~ShX4Qo diff --git a/bundles/org.eclipse.passage.loc.workbench/images/product-published.png b/bundles/org.eclipse.passage.loc.workbench/images/product-published.png deleted file mode 100644 index b30cc5222bbe293f5040f8f06b0f1a2dbda1a372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)-!%> z-|%L$`zpd%17tcvrS=1H`LmEU7Z{NZ0BTTSV`E$N`}gm~+}zyxU%q@%|0cx9aMO$J z|3791xGkK_>Uv)#wFD7IcfSe7onTv~y;qc+Z4B_G7zyALD%dq&~E(RfXUWRQ> z9SpW&dJGrd-C>A0(#-Jn&kqJB?^D zP7WIt;`$8RpPXd)^6T4w#(xa^fabl{NP5+qZ1l+1bDL@88ex?b|mn2C*|UGk<~PKx&Zn5KKtW*trEXXaYzx zFrCD0-n{t^h5@i-ODq5y0=5+;7Us;E1G0^v=E%rMIGY76A)!cO1DiH&LgBLzQa}iR k!vGjHB>5jX?EnNA091(;;BOz$C;$Ke07*qoM6N<$g0lx8ssI20 diff --git a/bundles/org.eclipse.passage.loc.workbench/images/remove.png b/bundles/org.eclipse.passage.loc.workbench/images/remove.png deleted file mode 100644 index 653094ae1d4e1387f856c72498af4548310071ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X(mh=qLn>}1{rUgjo>{YjHTcB&^ZYY+XI@rglA0j8Fq4hR zZO7z&b$@3~n#81H__esWSU-NBOf2)V#2ah>_OsN~*8WdsKJmzBhfS}K60;hc(7}!? t4n;N_7N|0=`N%7BeA2WI76wK(hM?9;SIY>yH9#vFJYD@<);T3K0RX=TL#qG) diff --git a/bundles/org.eclipse.passage.loc.workbench/images/save.png b/bundles/org.eclipse.passage.loc.workbench/images/save.png deleted file mode 100644 index 4ef557fcf8b7fc0bf7ded0aff14eda3e933763f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X+C5zyLn>}9nS7hKL4n7$vBY>^BHP@Ci6v|j0XiF9IFq!^ zH3j6Bi+fC+HRaeb%W{r$Z#0*FHEd?MRC|Z(`nnr0*8KE(zE|IoOEF=)z!8u4IcwJn zh$$S4SkyYGcZ?PSX;gfva(dHEXe{(hvXA7Rg?-P1E?ZEgP(Pd+%^$GJn3ZT?!A|Da^9mY z-_+JsNvruiz2!!m=}_7zci$T5 zDCQ4g{ZXW~1@^0#xc;t+<{2Dt`Gt)^ih?CtJjW7bV`2dgo21YRK67|Q|lu1g)#Vg&;KmMY*>Q? zL(+!BvoRgZxV6Tb1O^c%tSYk|((*~s@=@({2rf@$BzU&7*V#3#Kg$gwgvhyh?7@Ww zTETgxUCTvsvC+xNWop9yM%0)CN7d^x;SZscuFEv|?{)qWU;uh+*IkL=7lZ%+002ov JPDHLkV1k0qw2J@$ diff --git a/bundles/org.eclipse.passage.loc.workbench/images/warn.png b/bundles/org.eclipse.passage.loc.workbench/images/warn.png deleted file mode 100644 index 7b487d46ce6db64ec8be7b720606da0ae7b375ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmV;70dxL|P) z*;YxB<#~SM#T6rND4i*`p63b2afD@AaFiUP|k#h!$2lYk;$Y};OkVJIj| zV$(EY7zVjEO;fJZG)2DC_D+jH;1UGENGFXPQ521|H`aAM)zE`paKJUxH*aw=PWc4% zpcfo)4Gaw5tY7;Zpcfo)A>d+QuNrygP#hNm)3ldfmuC*mFv%>lIN-juvKHXh qo?H3jWx^lAkl$XWf3EXGfB^s|>cc children = application.getChildren(); - for (MWindow window : children) { - window.setLabel(brandingName); - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateClassifier.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateClassifier.java deleted file mode 100644 index e9d065116..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateClassifier.java +++ /dev/null @@ -1,107 +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.workbench; - -import java.util.Objects; -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.emf.common.util.ResourceLocator; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.emf.meta.ComposableClassMetadata; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.internal.workbench.wizards.BaseClassifierWizard; -import org.eclipse.passage.moveto.lic.emf.edit.EClassResources; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Shell; - -/** - * Creates the resource for the given domain with {@link BaseClassifierWizard}. - * Will return either root object of created resource or - * {@link Optional#empty()} - * - * @param classifier to be created - */ -public abstract class CreateClassifier implements Supplier> { - - protected final MandatoryService context; - private final String domain; - private final Class clazz; - - /** - * Constructs the new instance with given context, domain and classifier. - * Actually either domain or classifier should be enough - to be fixed later. - * - * @param context the {@link MandatoryService} to resolve services, must not - * be null - * @param domain the licensing domain to create resource for, must not be - * null - * @param classifier the class of object to be created and stored in resource, - * must not be null - */ - public CreateClassifier(MandatoryService context, String domain, Class classifier) { - Objects.requireNonNull(context, WorkbenchMessages.CreateDomainResource_e_null_context); - Objects.requireNonNull(domain, WorkbenchMessages.CreateDomainResource_e_null_domain); - Objects.requireNonNull(classifier, WorkbenchMessages.CreateDomainResource_e_null_classifier); - this.context = context; - this.domain = domain; - this.clazz = classifier; - } - - @Override - public Optional get() { - EditingDomainRegistryAccess registryAccess = context.get(EditingDomainRegistryAccess.class); - EditingDomainRegistry registry = registryAccess.getDomainRegistry(domain); - return showWizard(clazz, registry)// - .filter(clazz::isInstance)// - .flatMap(e -> Optional.of(clazz.cast(e))); - } - - protected Optional showWizard(Class type, EditingDomainRegistry registry) { - Optional found = context.get(ComposableClassMetadata.class).find(type); - if (!found.isPresent()) { - return Optional.empty(); - } - EntityMetadata metadata = found.get(); - EClass eClass = metadata.eClass(); - ResourceLocator resourceLocator = new EClassResources(eClass).get(); - String typeName = resourceLocator.getString(NLS.bind("_UI_{0}_type", eClass.getName())); //$NON-NLS-1$ - BaseClassifierWizard wizard = createWizard(type, metadata, registry); - Shell parentShell = context.get(Shell.class); - WizardDialog dialog = new WizardDialog(parentShell, wizard); - dialog.create(); - dialog.setTitle(typeName); - dialog.setMessage(dialogMessage(typeName)); - Shell createdShell = dialog.getShell(); - Point location = createdShell.getLocation(); - createdShell.setLocation(location.x + 40, location.y + 40); - createdShell.setText(NLS.bind(WorkbenchMessages.CreateClassifier_text_new_type, typeName)); - createdShell.setImage(LicensingImages.getImage(eClass.getName())); - dialog.open(); - return wizard.created(); - } - - protected abstract String dialogMessage(String typeName); - - protected abstract BaseClassifierWizard createWizard(Class type, EntityMetadata metadata, - EditingDomainRegistry registry); - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateInner.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateInner.java deleted file mode 100644 index 9f91fa67e..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateInner.java +++ /dev/null @@ -1,65 +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.workbench; - -import java.util.Optional; - -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.internal.workbench.wizards.BaseClassifierWizard; -import org.eclipse.passage.loc.internal.workbench.wizards.InnerClassifierWizard; -import org.eclipse.passage.loc.internal.workbench.wizards.RootClassifierWizard; - -/** - * Creates the root classifier and corresponding resource for the given domain - * with {@link RootClassifierWizard}. Will return either root object of created - * resource or {@link Optional#empty()} - * - * @param inner classifier to be created - * @param root classifier to store created if not present - */ -public final class CreateInner extends CreateClassifier { - - private final SelectRequest request; - - /** - * Constructs the new instance with given context, domain and classifier. - * Actually either domain or classifier should be enough - to be fixed later. - * - * @param context the {@link MandatoryService} to resolve services, must not - * be null - * @param domain the licensing domain to create resource for, must not be - * null - * @param classifier the class of object to be created and stored in resource, - * must not be null - */ - public CreateInner(MandatoryService context, String domain, Class classifier, SelectRequest request) { - super(context, domain, classifier); - this.request = request; - } - - @Override - protected BaseClassifierWizard createWizard(Class clazz, EntityMetadata metadata, - EditingDomainRegistry registry) { - return new InnerClassifierWizard(clazz, metadata, registry, request, context); - } - - @Override - protected String dialogMessage(String typeName) { - return NLS.bind(WorkbenchMessages.CreateInner_message_new_type, typeName); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateRoot.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateRoot.java deleted file mode 100644 index 804ca3e6d..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/CreateRoot.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.internal.workbench; - -import java.util.Optional; - -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.internal.workbench.wizards.BaseClassifierWizard; -import org.eclipse.passage.loc.internal.workbench.wizards.RootClassifierWizard; - -/** - * Creates the root classifier and corresponding resource for the given domain - * with {@link RootClassifierWizard}. Will return either root object of created - * resource or {@link Optional#empty()} - * - * @param root classifier to be created - */ -public final class CreateRoot extends CreateClassifier { - - /** - * Constructs the new instance with given context, domain and classifier. - * Actually either domain or classifier should be enough - to be fixed later. - * - * @param context the {@link MandatoryService} to resolve services, must not - * be null - * @param domain the licensing domain to create resource for, must not be - * null - * @param classifier the class of object to be created and stored in resource, - * must not be null - */ - public CreateRoot(MandatoryService context, String domain, Class classifier) { - super(context, domain, classifier); - } - - @Override - protected BaseClassifierWizard createWizard(Class clazz, EntityMetadata metadata, - EditingDomainRegistry registry) { - return new RootClassifierWizard(metadata, registry); - } - - @Override - protected String dialogMessage(String typeName) { - return NLS.bind(WorkbenchMessages.CreateRoot_message_new_type, typeName); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassMetadata.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassMetadata.java deleted file mode 100644 index 8ee9f87fa..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassMetadata.java +++ /dev/null @@ -1,69 +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.workbench; - -import java.util.Optional; - -import org.eclipse.e4.core.contexts.EclipseContextFactory; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.passage.lic.emf.meta.ClassMetadata; -import org.eclipse.passage.lic.emf.meta.ComposableClassMetadata; -import org.eclipse.passage.lic.emf.meta.ComposedClassMetadata; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.component.annotations.ReferenceCardinality; - -/** - * - * Registers an instance of {@link ComposableClassMetadata} to be available via - * OSGi and to be used from service context - * - * @see EclipseContextFactory#getServiceContext(org.osgi.framework.BundleContext) - * @see IEclipseContext#get(Class) - * - */ -@Component -public class LocClassMetadata implements ComposableClassMetadata { - - private final ComposableClassMetadata delegate; - - public LocClassMetadata() { - delegate = new ComposedClassMetadata(); - } - - @Override - public Optional find(Class clazz) { - return delegate.find(clazz); - } - - @Override - public void consider(ClassMetadata fragment) { - delegate.consider(fragment); - } - - @Override - public void forget(ClassMetadata fragment) { - delegate.forget(fragment); - } - - @Reference(cardinality = ReferenceCardinality.MULTIPLE) - void bind(ClassMetadata metadata) { - consider(metadata); - } - - void unbind(ClassMetadata metadata) { - forget(metadata); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassSupply.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassSupply.java deleted file mode 100644 index 8976a64a9..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocClassSupply.java +++ /dev/null @@ -1,70 +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.workbench; - -import java.util.Optional; - -import org.eclipse.e4.core.contexts.EclipseContextFactory; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.internal.api.ClassSupply; -import org.eclipse.passage.loc.internal.api.ComposableClassSupply; -import org.eclipse.passage.loc.internal.api.ComposedClassSupply; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.component.annotations.ReferenceCardinality; - -/** - * - * Registers an instance of {@link ComposableClassSupply} to be available via - * OSGi and to be used from service context - * - * @see EclipseContextFactory#getServiceContext(org.osgi.framework.BundleContext) - * @see IEclipseContext#get(Class) - * - */ -@Component -public class LocClassSupply implements ComposableClassSupply { - - private final ComposableClassSupply delegate; - - public LocClassSupply() { - delegate = new ComposedClassSupply(); - } - - @Override - public Optional> find(Class clazz, MandatoryService context) { - return delegate.find(clazz, context); - } - - @Override - public void consider(ClassSupply fragment) { - delegate.consider(fragment); - } - - @Override - public void forget(ClassSupply fragment) { - delegate.forget(fragment); - } - - @Reference(cardinality = ReferenceCardinality.MULTIPLE) - void bind(ClassSupply reference) { - consider(reference); - } - - void unbind(ClassSupply reference) { - forget(reference); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocDomainRegistryAccess.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocDomainRegistryAccess.java deleted file mode 100644 index 22cf6b467..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocDomainRegistryAccess.java +++ /dev/null @@ -1,113 +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.workbench; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -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; -import org.osgi.service.component.annotations.ReferenceCardinality; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@Component -public class LocDomainRegistryAccess implements EditingDomainRegistryAccess { - - private final Logger logger = LoggerFactory.getLogger(getClass()); - - private final Map> domainRegistries = new HashMap<>(); - private final Map domain2extension = new HashMap<>(); - private final Map extension2domain = new HashMap<>(); - private final Map selectionAdvisors = new HashMap<>(); - - @Reference(cardinality = ReferenceCardinality.MULTIPLE) - public void registerEditingDomainRegistry(EditingDomainRegistry instance, Map properties) { - String domain = String.valueOf(properties.get(PROPERTY_DOMAIN_NAME)); - registerEntry(domainRegistries, domain, instance); - String extension = String.valueOf(properties.get(PROPERTY_FILE_EXTENSION)); - registerEntry(domain2extension, domain, extension); - registerEntry(extension2domain, extension, domain); - } - - public void unregisterEditingDomainRegistry(EditingDomainRegistry instance, Map properties) { - String domain = String.valueOf(properties.get(PROPERTY_DOMAIN_NAME)); - unregisterEntry(domainRegistries, domain, instance); - String extension = String.valueOf(properties.get(PROPERTY_FILE_EXTENSION)); - unregisterEntry(domain2extension, domain, extension); - unregisterEntry(extension2domain, extension, domain); - } - - @Reference(cardinality = ReferenceCardinality.MULTIPLE) - public void registerCommandAdvisor(SelectionCommandAdvisor instance, Map properties) { - String domain = String.valueOf(properties.get(PROPERTY_DOMAIN_NAME)); - registerEntry(selectionAdvisors, domain, instance); - } - - public void unregisterCommandAdvisor(SelectionCommandAdvisor instance, Map properties) { - String domain = String.valueOf(properties.get(PROPERTY_DOMAIN_NAME)); - unregisterEntry(selectionAdvisors, domain, instance); - } - - protected void registerEntry(Map map, K key, V value) { - V existing = map.put(key, value); - if (existing != null) { - logger.warn(NLS.bind("Replaced {0} for domain {1}", existing, key)); //$NON-NLS-1$ - } - logger.trace(NLS.bind("Registered {0} for domain {1}", value, key)); //$NON-NLS-1$ - } - - protected void unregisterEntry(Map map, K key, V value) { - V existing = map.remove(key); - if (existing == null) { - logger.warn(NLS.bind("Unexpected null (should be {0}) for domain {1}", value, key)); //$NON-NLS-1$ - } - logger.trace(NLS.bind("Unregistered {0} for domain {1}", existing, key)); //$NON-NLS-1$ - } - - @Override - public EditingDomainRegistry getDomainRegistry(String domain) { - return domainRegistries.get(domain); - } - - @Override - public String getFileExtension(String domain) { - return domain2extension.get(domain); - } - - @Override - public SelectionCommandAdvisor getSelectionCommandAdvisor(String domain) { - return selectionAdvisors.get(domain); - } - - public Optional domainForExtension(String extension) { - return Optional.ofNullable(extension2domain.get(extension)); - } - - public Optional> domainRegistryForExtension(String extension) { - return domainForExtension(extension)// - .flatMap(d -> Optional.ofNullable(domainRegistries.get(d))); - } - - public List> domainRegistryList() { - return new ArrayList>(domainRegistries.values()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocImageRegistry.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocImageRegistry.java deleted file mode 100644 index a71cbdfb5..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/LocImageRegistry.java +++ /dev/null @@ -1,69 +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.workbench; - -import java.net.MalformedURLException; -import java.net.URL; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.resource.ImageRegistry; -import org.eclipse.passage.loc.jface.LocImages; -import org.eclipse.swt.graphics.Image; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Deactivate; - -@Component -public final class LocImageRegistry implements LocImages { - - private final ImageRegistry images = new ImageRegistry(); - - @Activate - public void register() { - addBaseImages(); - } - - private void addBaseImages() { - String pattern = "platform:/plugin/org.eclipse.passage.loc.workbench/images/%s"; //$NON-NLS-1$ - register(IMG_TOOL_ADD, String.format(pattern, "add.png")); //$NON-NLS-1$ - register(IMG_TOOL_EDIT, String.format(pattern, "edit.png")); //$NON-NLS-1$ - register(IMG_TOOL_REMOVE, String.format(pattern, "remove.png")); //$NON-NLS-1$ - } - - private void register(String key, String url) { - try { - ImageDescriptor created = ImageDescriptor.createFromURL(new URL(url)); - images.put(key, created); - } catch (MalformedURLException e) { - Platform.getLog(getClass()).log(Status.error(key, e)); - } - } - - @Deactivate - public void deactivate() { - images.dispose(); - } - - @Override - public Image getImage(String identifier) { - return images.get(identifier); - } - - @Override - public ImageDescriptor getImageDescriptor(String identifier) { - return images.getDescriptor(identifier); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContext.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContext.java deleted file mode 100644 index 4434f1f3e..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContext.java +++ /dev/null @@ -1,53 +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.workbench; - -import java.util.Objects; -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; - -/** - * - * Uses inner {@link IEclipseContext} to retrieve service instance, fails if - * inner context has no instance for a given type - * - */ -public final class MandatoryEclipseContext implements MandatoryService, Supplier { - - private final IEclipseContext context; - - /** - * Creates a new instance using given {@link IEclipseContext} - * - * @param context an {@link IEclipseContext} to delegate service resolution to - */ - public MandatoryEclipseContext(IEclipseContext context) { - Objects.requireNonNull(context, WorkbenchMessages.MandatoryEclipseContext_e_null_context); - this.context = context; - } - - @Override - public T get(Class type) { - return Optional.ofNullable(context.get(type)).get(); - } - - @Override - public IEclipseContext get() { - return context; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectFromDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectFromDialog.java deleted file mode 100644 index 8c91a104a..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectFromDialog.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.internal.workbench; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Function; -import java.util.function.Supplier; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.jface.dialogs.Appearance; -import org.eclipse.passage.loc.jface.dialogs.FilteredSelectionDialog; -import org.eclipse.passage.loc.jface.dialogs.LabelSearchFilter; -import org.eclipse.swt.widgets.Shell; - -/** - * Selects the classifier from the given input with - * {@link FilteredSelectionDialog} - * - * @param classifier to be selected - * - */ -public final class SelectFromDialog implements Function, Optional> { - - private final Supplier shellSupplier; - private final Appearance appearance; - private final Collection initial; - - /** - * - * @param shell the supplier of {@link Shell} to use for - * {@link FilteredSelectionDialog}, must not be - * null - * @param appearance the title, image and {@link LabelProvider} to use for - * {@link FilteredSelectionDialog}, must not be - * null - */ - public SelectFromDialog(Supplier supplier, Appearance appearance) { - this(supplier, appearance, Collections.emptyList()); - } - - /** - * - * @param shell the supplier of {@link Shell} to use for - * {@link FilteredSelectionDialog}, must not be - * null - * @param appearance the title, image and {@link LabelProvider} to use for - * {@link FilteredSelectionDialog}, must not be - * null - * @param initial the collection of objects to be an initial selection for - * {@link FilteredSelectionDialog}, must not be - * null - */ - public SelectFromDialog(Supplier supplier, Appearance appearance, Collection initial) { - Objects.requireNonNull(supplier, WorkbenchMessages.SelectFromDialog_e_null_shell); - Objects.requireNonNull(appearance, WorkbenchMessages.SelectFromDialog_e_null_appearance); - Objects.requireNonNull(initial, WorkbenchMessages.SelectFromDialog_e_null_initial); - this.shellSupplier = supplier; - this.appearance = appearance; - this.initial = new ArrayList(initial); - } - - /** - * Returns the selected object or {@link Optional#empty()} - */ - @Override - public Optional apply(Iterable input) { - FilteredSelectionDialog dialog = new FilteredSelectionDialog(shellSupplier.get(), false, - new LabelSearchFilter()); - dialog.setTitle(appearance.title()); - dialog.setImage(appearance.image().get()); - dialog.setLabelProvider(appearance.labelProvider()); - dialog.setInitialSelection(initial); - dialog.setInput(input); - if (dialog.open() == Dialog.OK) { - return dialog.getFirstResult(); - } - return Optional.empty(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectInner.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectInner.java deleted file mode 100644 index b5dfb4ee8..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectInner.java +++ /dev/null @@ -1,69 +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.internal.workbench; - -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.internal.api.ZeroOrOne; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.widgets.Shell; - -/** - * Selects the root classifier according to {@link SelectRequest} using - * {@link CreateRoot} and {@link SelectFromDialog} - * - * @param target type to be selected - */ -public final class SelectInner implements Supplier> { - - private final SelectRequest inner; - private final SelectRequest root; - private final MandatoryService context; - - /** - * Constructs the new instance with given select request and context. - * - * @param inner the {@link SelectRequest} to process for the classifier - * @param root the {@link SelectRequest} to process for the root classifier - * @param context the {@link MandatoryService} to resolve services, must not be - * null - */ - public SelectInner(SelectRequest inner, SelectRequest root, MandatoryService context) { - Objects.requireNonNull(inner, WorkbenchMessages.SelectRoot_e_null_inner_request); - Objects.requireNonNull(root, WorkbenchMessages.SelectRoot_e_null_root_request); - Objects.requireNonNull(context, WorkbenchMessages.SelectRoot_e_null_context); - this.inner = inner; - this.root = root; - this.context = context; - } - - @Override - public final Optional get() { - return new ZeroOrOne<>(inner.input()) - .choose(new CreateInner(context, root.domain(), inner.target(), root), new SelectFromDialog<>( - () -> context.get(Shell.class), inner.appearance(), collection(inner.initial()))); - } - - private Collection collection(Supplier> iterable) { - return StreamSupport.stream(iterable.get().spliterator(), false)// - .collect(Collectors.toList()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRequest.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRequest.java deleted file mode 100644 index 6d3a8f125..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRequest.java +++ /dev/null @@ -1,115 +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.internal.workbench; - -import java.util.Collections; -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.jface.dialogs.Appearance; - -/** - * Encapsulates the information required to select the classifier - * - * @param target type to be selected - */ -public final class SelectRequest { - - private final Class target; - private final String domain; - private final Supplier> input; - private final Supplier> initial; - private final Appearance appearance; - - /** - * Creates a {@link SelectRequest} instance for target classifier that belongs - * to a given domain, also specifies the input to select from and the dialog - * appearance - * - * @param target the type of object to be selected, must not be - * null - * @param domain the domain that target belongs to, must not be - * null - * @param input the input to select from, must not be null - * @param initial preventive selection, must not be null - * @param appearance the appearance of UI dialog, must not be null - */ - public SelectRequest(Class target, String domain, Supplier> input, Supplier> initial, - Appearance appearance) { - Objects.requireNonNull(target, WorkbenchMessages.SelectRequest_e_target_null); - Objects.requireNonNull(domain, WorkbenchMessages.SelectRequest_e_domain_null); - Objects.requireNonNull(input, WorkbenchMessages.SelectRequest_e_input_null); - Objects.requireNonNull(initial, WorkbenchMessages.SelectRequest_e_selection_null); - Objects.requireNonNull(appearance, WorkbenchMessages.SelectRequest_e_appearance_null); - this.target = target; - this.domain = domain; - this.input = input; - this.initial = initial; - this.appearance = appearance; - } - - /** - * Convenience constructor for empty initial selection - */ - public SelectRequest(Class target, String domain, Supplier> input, Appearance appearance) { - this(target, domain, input, Collections::emptyList, appearance); - } - - /** - * The type of object to be selected - * - * @return non-null target - */ - public Class target() { - return target; - } - - /** - * The domain of object to be selected - * - * @return non-null domain - */ - public String domain() { - return domain; - } - - /** - * The supplier of input to select from - * - * @return non-null supplier of input - */ - public Supplier> input() { - return input; - } - - /** - * The supplier of initial selection - * - * @return non-null supplier of input - */ - public Supplier> initial() { - return initial; - } - - /** - * The appearance to use for UI - * - * @return non-null appearance - */ - public Appearance appearance() { - return appearance; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoot.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoot.java deleted file mode 100644 index 125d289bd..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoot.java +++ /dev/null @@ -1,65 +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.internal.workbench; - -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.internal.api.ZeroOrOne; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.widgets.Shell; - -/** - * Selects the root classifier according to {@link SelectRequest} using - * {@link CreateRoot} and {@link SelectFromDialog} - * - * @param target type to be selected - */ -public final class SelectRoot implements Supplier> { - - private final SelectRequest request; - private final MandatoryService context; - - /** - * Constructs the new instance with given select request and context. - * - * @param request the {@link SelectRequest} select to process - * @param context the {@link MandatoryService} to resolve services, must not be - * null - */ - public SelectRoot(SelectRequest request, MandatoryService context) { - Objects.requireNonNull(request, WorkbenchMessages.SelectRoot_e_null_root_request); - Objects.requireNonNull(context, WorkbenchMessages.SelectRoot_e_null_context); - this.request = request; - this.context = context; - } - - @Override - public final Optional get() { - return new ZeroOrOne<>(request.input()).choose(new CreateRoot(context, request.domain(), request.target()), - new SelectFromDialog<>(() -> context.get(Shell.class), request.appearance(), - collection(request.initial()))); - } - - private Collection collection(Supplier> iterable) { - return StreamSupport.stream(iterable.get().spliterator(), false)// - .collect(Collectors.toList()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoots.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoots.java deleted file mode 100644 index ee38d1cf5..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectRoots.java +++ /dev/null @@ -1,69 +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.internal.workbench; - -import java.util.Collection; -import java.util.Objects; -import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.internal.api.ZeroOrMany; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.widgets.Shell; - -/** - * Selects a subset of root classifiers according to {@link SelectRequest} using - * {@link CreateRoot} and {@link SelectSeveralFromDialog} - * - * @param target type to be selected - */ -public final class SelectRoots implements Supplier> { - - private final SelectRequest request; - private final MandatoryService context; - - /** - * Constructs the new instance with given select request and context. - * - * @param request the {@link SelectRequest} select to process - * @param context the {@link MandatoryService} to resolve services, must not be - * null - */ - public SelectRoots(SelectRequest request, MandatoryService context) { - Objects.requireNonNull(request, WorkbenchMessages.SelectRoot_e_null_root_request); - Objects.requireNonNull(context, WorkbenchMessages.SelectRoot_e_null_context); - this.request = request; - this.context = context; - } - - @Override - public final Collection get() { - return new ZeroOrMany<>(() -> collection(request.input())// - ).choose(// - new CreateRoot(context, request.domain(), request.target()), // - new SelectSeveralFromDialog(// - () -> context.get(Shell.class), // - request.appearance(), // - collection(request.initial()))// - ); - } - - private Collection collection(Supplier> iterable) { - return StreamSupport.stream(iterable.get().spliterator(), false)// - .collect(Collectors.toList()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectSeveralFromDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectSeveralFromDialog.java deleted file mode 100644 index d2e2a7823..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SelectSeveralFromDialog.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.internal.workbench; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Function; -import java.util.function.Supplier; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.jface.dialogs.Appearance; -import org.eclipse.passage.loc.jface.dialogs.FilteredSelectionDialog; -import org.eclipse.passage.loc.jface.dialogs.LabelSearchFilter; -import org.eclipse.swt.widgets.Shell; - -/** - * Selects the classifier from the given input with - * {@link FilteredSelectionDialog} - * - * @param classifier to be selected - * - */ -public final class SelectSeveralFromDialog implements Function, Collection> { - - private final Supplier shellSupplier; - private final Appearance appearance; - private final Collection initial; - - /** - * - * @param shell the supplier of {@link Shell} to use for - * {@link FilteredSelectionDialog}, must not be - * null - * @param appearance the title, image and {@link LabelProvider} to use for - * {@link FilteredSelectionDialog}, must not be - * null - */ - public SelectSeveralFromDialog(Supplier supplier, Appearance appearance) { - this(supplier, appearance, Collections.emptyList()); - } - - /** - * - * @param shell the supplier of {@link Shell} to use for - * {@link FilteredSelectionDialog}, must not be - * null - * @param appearance the title, image and {@link LabelProvider} to use for - * {@link FilteredSelectionDialog}, must not be - * null - * @param initial the collection of objects to be an initial selection for - * {@link FilteredSelectionDialog}, must not be - * null - */ - public SelectSeveralFromDialog(Supplier supplier, Appearance appearance, Collection initial) { - Objects.requireNonNull(supplier, WorkbenchMessages.SelectFromDialog_e_null_shell); - Objects.requireNonNull(appearance, WorkbenchMessages.SelectFromDialog_e_null_appearance); - Objects.requireNonNull(initial, WorkbenchMessages.SelectFromDialog_e_null_initial); - this.shellSupplier = supplier; - this.appearance = appearance; - this.initial = new ArrayList(initial); - } - - /** - * Returns the selected object or {@link Optional#empty()} - */ - @Override - public Collection apply(Collection input) { - FilteredSelectionDialog dialog = new FilteredSelectionDialog(shellSupplier.get(), true, - new LabelSearchFilter()); - dialog.setTitle(appearance.title()); - dialog.setImage(appearance.image().get()); - dialog.setLabelProvider(appearance.labelProvider()); - dialog.setInitialSelection(initial); - dialog.setInput(input); - if (dialog.open() == Dialog.OK) { - return dialog.getResult(); - } - return Collections.emptyList(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SupplySelectRequest.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SupplySelectRequest.java deleted file mode 100644 index 3cc000953..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/SupplySelectRequest.java +++ /dev/null @@ -1,46 +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.internal.workbench; - -import java.util.Collection; -import java.util.Collections; -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.workbench.viewers.DomainRegistryLabelProvider; - -public abstract class SupplySelectRequest implements Supplier> { - - protected final MandatoryService context; - protected final Collection initial; - - public SupplySelectRequest(MandatoryService context) { - this(context, Collections.emptyList()); - } - - public SupplySelectRequest(MandatoryService context, Optional initial) { - this(context, initial.map(Collections::singletonList).orElseGet(Collections::emptyList)); - } - - public SupplySelectRequest(MandatoryService context, Collection initial) { - this.context = context; - this.initial = initial; - } - - protected LabelProvider labels() { - return new DomainRegistryLabelProvider(); - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.java deleted file mode 100644 index 4633180a0..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.java +++ /dev/null @@ -1,80 +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.workbench.i18n; - -import org.eclipse.osgi.util.NLS; - -public class WorkbenchMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages"; //$NON-NLS-1$ - public static String Appearance_e_null_image; - public static String Appearance_e_null_labels; - public static String Appearance_e_null_title; - public static String BaseClassifierWizardPage_e_null_metadata; - public static String CreateClassifier_text_new_type; - public static String CreateDomainResource_e_null_classifier; - public static String CreateDomainResource_e_null_context; - public static String CreateDomainResource_e_null_domain; - public static String CreateFileWizard_q_exists_message; - public static String CreateFileWizard_q_exists_title; - public static String CreateFileWizardPage_button_browse; - public static String CreateFileWizardPage_e_specify_identifier; - public static String CreateFileWizardPage_e_specify_name; - public static String CreateFileWizardPage_e_specify_path; - public static String CreateFileWizardPage_label_file; - public static String CreateFileWizardPage_label_identifier; - public static String CreateFileWizardPage_label_name; - public static String CreateInner_message_new_type; - public static String CreateRoot_message_new_type; - public static String ExitWorkbenchHandler_exit_message; - public static String ExitWorkbenchHandler_exit_title; - public static String FileContentDialog_e_unable_read; - public static String FileContentDialog_shell_text; - public static String FilteredSelectionDialog_filtering_label; - public static String FilteredSelectionDialog_items_label; - public static String LicensingStatusToolControl_text_undefined; - public static String LocWokbench_e_nothing_to_select; - public static String LocWokbench_e_saving; - public static String RedoHandler_label_base; - public static String RedoHandler_label_pattern; - public static String BaseClassifierWizard_e_registry_null; - public static String InnerClassifierWizard_e_store; - public static String InnerClassifierWizardPage_e_specify_container; - public static String InnerClassifierWizardPage_text_select; - public static String BaseClassifierWizard_message_e_cancelled; - public static String BaseClassifierWizard_message_e_create; - public static String BaseClassifierWizard_title_e_create; - public static String MandatoryEclipseContext_e_null_context; - public static String SelectFromDialog_e_null_appearance; - public static String SelectFromDialog_e_null_initial; - public static String SelectFromDialog_e_null_shell; - public static String SelectRequest_e_appearance_null; - public static String SelectRequest_e_domain_null; - public static String SelectRequest_e_input_null; - public static String SelectRequest_e_selection_null; - public static String SelectRequest_e_target_null; - public static String SelectRoot_e_null_context; - public static String SelectRoot_e_null_inner_request; - public static String SelectRoot_e_null_root_request; - public static String UndoHandler_label_base; - public static String UndoHandler_label_handler; - public static String UnregisterConfirmation_message; - public static String UnregisterConfirmation_title; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, WorkbenchMessages.class); - } - - private WorkbenchMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.properties b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.properties deleted file mode 100644 index 6aa9c958a..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/i18n/WorkbenchMessages.properties +++ /dev/null @@ -1,67 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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 -# ArSysOp - further support -############################################################################### - -Appearance_e_null_title=Title must not be null -Appearance_e_null_image=Image must not be null -Appearance_e_null_labels=LabelProvider must not be null -BaseClassifierWizardPage_e_null_metadata=Metadata must not be null -CreateClassifier_text_new_type=New {0} -CreateDomainResource_e_null_classifier=Classifier must not be null -CreateDomainResource_e_null_context=Context must not be null -CreateDomainResource_e_null_domain=Domain must not be null -CreateFileWizard_q_exists_message=The file "%s" already exists. Do you want to replace the existing file? -CreateFileWizard_q_exists_title=Question -CreateFileWizardPage_button_browse=Browse ... -CreateFileWizardPage_e_specify_identifier=Please specify the identifier -CreateFileWizardPage_e_specify_name=Please specify the name -CreateFileWizardPage_e_specify_path=Please specify a file path -CreateFileWizardPage_label_file=&File: -CreateFileWizardPage_label_identifier=&Identifier: -CreateFileWizardPage_label_name=&Name: -CreateInner_message_new_type=Please specify properties for new {0} -CreateRoot_message_new_type=Please specify a file name to store new {0} -ExitWorkbenchHandler_exit_message=Do you want to exit the product? -ExitWorkbenchHandler_exit_title=Exit dialog -FileContentDialog_e_unable_read=Error unable to read: -FileContentDialog_shell_text=File Content -FilteredSelectionDialog_items_label=Matching items: -FilteredSelectionDialog_filtering_label=Matcher: -LicensingStatusToolControl_text_undefined=Undefined -LocWokbench_e_nothing_to_select=Nothing to select from -LocWokbench_e_saving=Error saving resource -RedoHandler_label_base=Redo -RedoHandler_label_pattern={0} {1} -BaseClassifierWizard_e_registry_null=EditingDomainRegistry must not be null -InnerClassifierWizard_e_store=Failed to store created object -InnerClassifierWizardPage_e_specify_container=Please specify {0} -InnerClassifierWizardPage_text_select=Select... -BaseClassifierWizard_message_e_cancelled=Operation failed -BaseClassifierWizard_message_e_create=Create operation failed -BaseClassifierWizard_title_e_create=Create -MandatoryEclipseContext_e_null_context=Context must not be null -SelectFromDialog_e_null_appearance=Appearance must not be null -SelectFromDialog_e_null_initial=Initial selection must not be null -SelectFromDialog_e_null_shell=Shell must not be null -SelectRequest_e_appearance_null=Appearance must not be null -SelectRequest_e_domain_null=Domain must not be null -SelectRequest_e_input_null=Input must not be null -SelectRequest_e_selection_null=Selection can be empty, but must not be null -SelectRequest_e_target_null=Target must not be null -SelectRoot_e_null_context=Context must not be null -SelectRoot_e_null_inner_request=Request for inner must not be null -SelectRoot_e_null_root_request=Request for root must not be null -UndoHandler_label_base=Undo -UndoHandler_label_handler={0} {1} -UnregisterConfirmation_message=Unregister domain resources ({0})? -UnregisterConfirmation_title=Unregister Resources diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterAction.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterAction.java deleted file mode 100644 index e27be1779..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterAction.java +++ /dev/null @@ -1,47 +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.workbench.registry; - -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.jface.action.Action; -import org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.widgets.Shell; - -public final class UnregisterAction extends Action { - - private final LocDomainRegistryAccess access; - private final Supplier selection; - private final Supplier shell; - - public UnregisterAction(LocDomainRegistryAccess access, Supplier selection, Supplier shell) { - super(WorkbenchMessages.UnregisterConfirmation_title); - Objects.requireNonNull(access, "LocDomainRegistryAccess access"); //$NON-NLS-1$ - Objects.requireNonNull(selection, "Supplier selection"); //$NON-NLS-1$ - Objects.requireNonNull(shell, "Supplier shell"); //$NON-NLS-1$ - this.access = access; - this.selection = selection; - this.shell = shell; - } - - @Override - public void run() { - new UnregisterSelected(// - new UnregisterUri(access), // - new UnregisterConfirmation(shell))// - .unregister(selection.get()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterConfirmation.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterConfirmation.java deleted file mode 100644 index ed7ff8259..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterConfirmation.java +++ /dev/null @@ -1,41 +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.workbench.registry; - -import java.text.MessageFormat; -import java.util.List; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.function.Supplier; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.widgets.Shell; - -public final class UnregisterConfirmation implements Predicate> { - - private final Supplier shell; - - public UnregisterConfirmation(Supplier shell) { - Objects.requireNonNull(shell, "Supplier shell"); //$NON-NLS-1$ - this.shell = shell; - } - - @Override - public boolean test(List uris) { - return MessageDialog.openConfirm(shell.get(), WorkbenchMessages.UnregisterConfirmation_title, - MessageFormat.format(WorkbenchMessages.UnregisterConfirmation_message, uris.size())); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterSelected.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterSelected.java deleted file mode 100644 index 41ce4a825..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterSelected.java +++ /dev/null @@ -1,53 +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.workbench.registry; - -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Consumer; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; - -public final class UnregisterSelected { - - private final Consumer unregister; - private final Predicate> accept; - - public UnregisterSelected(Consumer unregister, Predicate> accept) { - Objects.requireNonNull(unregister, "Consumer unregister"); //$NON-NLS-1$ - Objects.requireNonNull(accept, "Predicate> accept"); //$NON-NLS-1$ - this.unregister = unregister; - this.accept = accept; - } - - public void unregister(Object selection) { - List remove = Arrays.stream(// - Optional.of(selection)// - .filter(Object[].class::isInstance)// - .map(Object[].class::cast)// - .orElse(new Object[] { selection }))// - .filter(Resource.class::isInstance)// - .map(Resource.class::cast).map(Resource::getURI)// - .filter(Objects::nonNull).collect(Collectors.toList()); - if (remove.isEmpty() || !accept.test(remove)) { - return; - } - remove.forEach(unregister); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterUri.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterUri.java deleted file mode 100644 index abd52acf4..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterUri.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2020, 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.workbench.registry; - -import java.util.Objects; -import java.util.Optional; -import java.util.function.Consumer; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess; - -public final class UnregisterUri implements Consumer { - - private final LocDomainRegistryAccess access; - - public UnregisterUri(LocDomainRegistryAccess access) { - Objects.requireNonNull(access, "LocDomainRegistryAccess access"); //$NON-NLS-1$ - this.access = access; - } - - @Override - public void accept(URI uri) { - Optional.ofNullable(uri)// - .flatMap(u -> Optional.ofNullable(u.fileExtension()))// - .flatMap(e -> access.domainRegistryForExtension(e))// - .filter(EditingDomainRegistry.class::isInstance)// - .map(EditingDomainRegistry.class::cast)// - .ifPresent(r -> r.unregisterSource(uri)); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizard.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizard.java deleted file mode 100644 index a0a4bb274..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizard.java +++ /dev/null @@ -1,132 +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.workbench.wizards; - -import java.lang.reflect.InvocationTargetException; -import java.util.Optional; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.edit.domain.IEditingDomainProvider; -import org.eclipse.jface.dialogs.ErrorDialog; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.wizard.Wizard; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.osgi.framework.Bundle; -import org.osgi.framework.FrameworkUtil; - -/** - * Creates new licensing object, either root of resource or not. Can be asked - * for a reference to a created instance. - * - * @param a sub-type of {@link BaseClassifierWizardPage} to be used - * - */ -public abstract class BaseClassifierWizard extends Wizard { - - protected final EntityMetadata metadata; - protected final EditingDomainRegistry registry; - - protected N newClassifierPage; - - /** - * Creates a new wizard with given metadata and initializer - * - * @param metadata describes EMF metadata for an object to be created, must not - * be null - * @param registry registry for an object to be created, must not be - * null - * @see EntityMetadata - * @see EditingDomainRegistry - * - */ - protected BaseClassifierWizard(EntityMetadata metadata, EditingDomainRegistry registry) { - this.metadata = metadata; - this.registry = registry; - } - - /** - * Creates an instance of wizard page to fulfill the field values for an object - * to be created, implementors expected to return just constructed page object, - * all the content initialization will be done later. - * - * @return a just created instance of the {@link WizardPage} - */ - protected abstract N createNewClassifierPage(); - - @Override - public void addPages() { - this.newClassifierPage = createNewClassifierPage(); - addPage(newClassifierPage); - } - - /** - * An optional reference to a created instance, may be empty in case of errors - * during creation of because wizard was cancelled. - * - * @return created {@link EObject} or {@link Optional#empty()} - */ - public Optional created() { - return newClassifierPage.candidate().eResource() != null ? Optional.of(newClassifierPage.candidate()) - : Optional.empty(); - } - - protected ResourceSet resourceSet() { - if (registry instanceof IEditingDomainProvider) { - IEditingDomainProvider edProvider = (IEditingDomainProvider) registry; - return edProvider.getEditingDomain().getResourceSet(); - } - return new ResourceSetImpl(); - } - - @Override - public boolean performFinish() { - try { - getContainer().run(false, false, m -> store()); - return true; - } catch (InvocationTargetException exception) { - failed(exception.getTargetException()); - return false; - } catch (InterruptedException exception) { - cancelled(); - return false; - } - } - - protected abstract ServiceInvocationResult store(); - - protected void failed(Throwable target) { - Bundle bundle = FrameworkUtil.getBundle(getClass()); - IStatus status = new Status(IStatus.ERROR, bundle.getSymbolicName(), // - Optional.ofNullable(target).map(t -> t.getMessage())// - .orElse(WorkbenchMessages.BaseClassifierWizard_message_e_create), - target); - Platform.getLog(getClass()).log(status); - ErrorDialog.openError(getShell(), WorkbenchMessages.BaseClassifierWizard_title_e_create, - WorkbenchMessages.BaseClassifierWizard_message_e_create, status); - } - - protected void cancelled() { - MessageDialog.openError(getShell(), WorkbenchMessages.BaseClassifierWizard_title_e_create, - WorkbenchMessages.BaseClassifierWizard_message_e_create); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizardPage.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizardPage.java deleted file mode 100644 index 38cbf68cf..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/BaseClassifierWizardPage.java +++ /dev/null @@ -1,142 +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.workbench.wizards; - -import java.util.Objects; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.jface.layout.GridLayoutFactory; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.moveto.lic.emf.edit.EObjectDefaultName; -import org.eclipse.passage.moveto.lic.emf.edit.EObjectNameIdentifier; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; - -/** - * Provides UI to to fulfill the field values for an object to be created, - * either root of resource or not. Can be asked for a reference to a candidate - * instance. - * - */ -public abstract class BaseClassifierWizardPage extends WizardPage { - - protected final EClass eClass; - protected final EStructuralFeature identification; - protected final EStructuralFeature naming; - protected final EObject eObject; - - protected final ModifyListener validator = e -> setPageComplete(validatePage()); - - private Text textId; - private Text textName; - - /** - * Creates a new wizard page with given metadata and initializer. - * - * @param pageName the name of the page - * @param metadata describes EMF metadata for an object to be created, must not - * be null - * @see EntityMetadata - */ - protected BaseClassifierWizardPage(String pageName, EntityMetadata metadata) { - super(pageName); - Objects.requireNonNull(metadata, WorkbenchMessages.BaseClassifierWizardPage_e_null_metadata); - this.eClass = metadata.eClass(); - this.eObject = eClass.getEPackage().getEFactoryInstance().create(eClass); - this.identification = metadata.identification(); - this.naming = metadata.naming(); - } - - @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()); - createFieldControls(composite); - initControls(); - setPageComplete(validatePage()); - setControl(composite); - } - - protected void createFieldControls(Composite composite) { - createIdentifierGroup(composite); - createNameGroup(composite); - } - - private void createNameGroup(Composite composite) { - Label labelName = new Label(composite, SWT.LEFT); - labelName.setText(WorkbenchMessages.CreateFileWizardPage_label_name); - labelName.setLayoutData(GridDataFactory.fillDefaults().create()); - textName = new Text(composite, SWT.BORDER); - textName.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create()); - textName.addModifyListener(validator); - } - - private void createIdentifierGroup(Composite composite) { - Label labelId = new Label(composite, SWT.LEFT); - labelId.setText(WorkbenchMessages.CreateFileWizardPage_label_identifier); - labelId.setLayoutData(GridDataFactory.fillDefaults().create()); - textId = new Text(composite, SWT.BORDER); - textId.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create()); - textId.addModifyListener(validator); - } - - protected void initControls() { - textId.setText(new EObjectNameIdentifier(eClass).apply('.')); - textName.setText(new EObjectDefaultName(eClass).get()); - } - - protected boolean validatePage() { - boolean validationResult = true; - String id = textId.getText(); - // FIXME: databinding - eObject.eSet(identification, id); - if (id.isEmpty()) { - setErrorMessage(WorkbenchMessages.CreateFileWizardPage_e_specify_identifier); - validationResult = false; - } - String name = textName.getText(); - // FIXME: databinding - eObject.eSet(naming, name); - if (name.isEmpty()) { - setErrorMessage(WorkbenchMessages.CreateFileWizardPage_e_specify_name); - validationResult = false; - } - if (validationResult) { - setErrorMessage(null); - } - return validationResult; - } - - @Override - public void setVisible(boolean visible) { - super.setVisible(visible); - textId.setFocus(); - } - - /** - * - * @see BaseClassifierWizard#created() - */ - protected EObject candidate() { - return eObject; - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizard.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizard.java deleted file mode 100644 index 6a8fda844..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizard.java +++ /dev/null @@ -1,113 +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.workbench.wizards; - -import java.io.IOException; -import java.util.HashMap; -import java.util.NoSuchElementException; -import java.util.Optional; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.api.diagnostic.Trouble; -import org.eclipse.passage.lic.base.BaseServiceInvocationResult; -import org.eclipse.passage.lic.emf.meta.ComposableClassMetadata; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.lic.emf.resource.ResourceSaveFailed; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.workbench.SelectRequest; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; - -/** - * Creates new root licensing object. Can be asked for a reference to a created - * instance. - * - * @param inner classifier to be created - * @param root classifier to store created if not present - * - */ -public final class InnerClassifierWizard extends BaseClassifierWizard> { - - private final Class clazz; - private final MandatoryService context; - private final SelectRequest request; - - /** - * Creates a new wizard for root licensing object with given metadata, - * initializer and registry - * - * @param metadata describes EMF metadata for an object to be created, must not - * be null - * @param registry - * @param registry registry for an object to be created, must not be - * null - * - * @see BaseClassifierWizard - * @see ClassifierMetadata - * @see EditingDomainRegistry - * - */ - public InnerClassifierWizard(Class clazz, EntityMetadata metadata, EditingDomainRegistry registry, - SelectRequest request, MandatoryService context) { - super(metadata, registry); - this.clazz = clazz; - this.request = request; - this.context = context; - } - - @Override - protected InnerClassifierWizardPage createNewClassifierPage() { - Optional find = context.get(ComposableClassMetadata.class).find(clazz); - if (find.isPresent()) { - return new InnerClassifierWizardPage(find.get(), request, context); - } - // FIXME: AF: provide nice error page - throw new NoSuchElementException(clazz.getName()); - } - - @Override - protected ServiceInvocationResult store() { - return store(newClassifierPage.container(), newClassifierPage.candidate()); - } - - // FIXME: AF: rework to remove Optional - protected ServiceInvocationResult store(Optional container, EObject candidate) { - if (!container.isPresent()) { - return new BaseServiceInvocationResult<>(Boolean.FALSE); - } - EReference reference = containerEReference(candidate.eClass()).get(); - candidate.eSet(reference, container.get()); - Resource resource = candidate.eResource(); - if (resource == null) { - return new BaseServiceInvocationResult<>(Boolean.FALSE); - } - try { - resource.save(new HashMap<>()); - return new BaseServiceInvocationResult<>(Boolean.TRUE); - } catch (IOException e) { - return new BaseServiceInvocationResult<>( - new Trouble(new ResourceSaveFailed(), WorkbenchMessages.InnerClassifierWizard_e_store, e)); - } - } - - private Optional containerEReference(EClass eClass) { - return eClass.getEAllReferences().stream()// - .filter(EReference::isContainer)// - .findFirst(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizardPage.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizardPage.java deleted file mode 100644 index 2d8de6f1c..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/InnerClassifierWizardPage.java +++ /dev/null @@ -1,142 +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.workbench.wizards; - -import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.NoSuchElementException; -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.e4.core.contexts.EclipseContextFactory; -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.lic.emf.meta.ComposableClassMetadata; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.loc.internal.api.ComposableClassSupply; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.eclipse.passage.loc.internal.workbench.MandatoryEclipseContext; -import org.eclipse.passage.loc.internal.workbench.SelectRequest; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.moveto.lic.emf.edit.EClassName; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; -import org.osgi.framework.FrameworkUtil; - -/** - * Provides UI to to fulfill the field values for an inner classifier to be - * created, including container object. - * - * @param root classifier to store created if not present - * - * @see BaseClassifierWizardPage - * - */ -public final class InnerClassifierWizardPage extends BaseClassifierWizardPage { - - private final SelectRequest request; - private final MandatoryService context; - private final MandatoryEclipseContext forward; - - private Text text; - - protected InnerClassifierWizardPage(EntityMetadata metadata, SelectRequest request, MandatoryService context) { - super(InnerClassifierWizardPage.class.getSimpleName(), metadata); - this.request = request; - this.context = context; - this.forward = new MandatoryEclipseContext(EclipseContextFactory - .createServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext()).createChild()); - } - - @Override - protected void createFieldControls(Composite composite) { - text = createTextButtonBlock(composite, // - new EClassName(containerMetadata().get().eClass()).get(), // - this::selectContainer); - super.createFieldControls(composite); - } - - private Optional containerMetadata() { - return context.get(ComposableClassMetadata.class).find(request.target()); - } - - private Text createTextButtonBlock(Composite composite, String labelText, Supplier> supplier) { - Label label = new Label(composite, SWT.NONE); - label.setText(labelText); - label.setLayoutData(GridDataFactory.fillDefaults().create()); - Text parent = new Text(composite, SWT.READ_ONLY); - parent.addModifyListener(m -> setPageComplete(validatePage())); - parent.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); - Button select = new Button(composite, SWT.PUSH); - select.setText(WorkbenchMessages.InnerClassifierWizardPage_text_select); - forward.get().set(Shell.class, getShell()); - select.addSelectionListener(widgetSelectedAdapter(event -> updateText(supplier.get()))); - select.setLayoutData(GridDataFactory.fillDefaults().create()); - return parent; - } - - private void updateText(Optional optional) { - if (optional.isPresent()) { - Object present = optional.get(); - text.setData(present); - text.setText(request.appearance().labelProvider().getText(present)); - } else { - text.setData(null); - text.setText(""); //$NON-NLS-1$ - } - validatePage(); - } - - @Override - protected void initControls() { - super.initControls(); - Optional.ofNullable(eObject.eContainingFeature()).ifPresent(f -> updateText(container(eObject.eGet(f)))); - } - - private Optional selectContainer() { - Collection initial = new ArrayList<>(); - container().ifPresent(initial::add); - Optional> found = context.get(ComposableClassSupply.class).find(request.target(), forward); - if (found.isPresent()) { - return found.get().supply(); - } - throw new NoSuchElementException(request.target().getName()); - } - - @Override - protected boolean validatePage() { - if (!Optional.ofNullable(text.getData()).isPresent()) { - setErrorMessage(NLS.bind(WorkbenchMessages.InnerClassifierWizardPage_e_specify_container, - new EClassName(containerMetadata().get().eClass()).get())); - return false; - } - return super.validatePage(); - } - - protected Optional container() { - return container(text.getData()); - } - - protected Optional container(Object nullable) { - return Optional.ofNullable(nullable)// - .filter(request.target()::isInstance)// - .flatMap(d -> Optional.of(request.target().cast(d))); - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizard.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizard.java deleted file mode 100644 index a8472818f..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizard.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2020, 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.workbench.wizards; - -import java.io.IOException; -import java.util.HashMap; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.api.diagnostic.Trouble; -import org.eclipse.passage.lic.base.BaseServiceInvocationResult; -import org.eclipse.passage.lic.base.diagnostic.BaseDiagnostic; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.lic.emf.resource.ResourceSaveFailed; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; - -/** - * Creates new root licensing object. Can be asked for a reference to a created - * instance. - * - */ -public final class RootClassifierWizard extends BaseClassifierWizard { - - /** - * Creates a new wizard for root licensing object with given metadata, - * initializer and registry - * - * @param metadata describes EMF metadata for an object to be created, must not - * be null - * @param registry registry for an object to be created, must not be - * null - * @see BaseClassifierWizard - * @see EntityMetadata - * @see EditingDomainRegistry - * - */ - public RootClassifierWizard(EntityMetadata metadata, EditingDomainRegistry registry) { - super(metadata, registry); - } - - @Override - protected RootClassifierWizardPage createNewClassifierPage() { - return new RootClassifierWizardPage(metadata, registry.getFileExtension()); - } - - @Override - protected ServiceInvocationResult store() { - return store(newClassifierPage.path(), newClassifierPage.candidate()); - } - - protected ServiceInvocationResult store(String path, EObject candidate) { - URI fileURI = URI.createFileURI(path); - Resource resource = resourceSet().createResource(fileURI); - resource.getContents().add(candidate); - try { - resource.save(new HashMap<>()); - return registry.registerSource(fileURI); - } catch (IOException e) { - return new BaseServiceInvocationResult(new BaseDiagnostic( - new Trouble(new ResourceSaveFailed(), WorkbenchMessages.InnerClassifierWizard_e_store, e))); - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizardPage.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizardPage.java deleted file mode 100644 index 1f6e84b25..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/internal/workbench/wizards/RootClassifierWizardPage.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.eclipse.passage.loc.internal.workbench.wizards; - -import java.io.File; - -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.passage.lic.emf.meta.EntityMetadata; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.workbench.LocWokbench; -import org.eclipse.passage.moveto.lic.emf.edit.EObjectNameIdentifier; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; - -/** - * Provides UI to to fulfill the field values for a root classifier to be - * created, including path to store the new resource. - * - * @see BaseClassifierWizardPage - * - */ -public final class RootClassifierWizardPage extends BaseClassifierWizardPage { - - private final String extension; - - protected Text text; - private Button button; - - protected RootClassifierWizardPage(EntityMetadata metadata, String extension) { - super(RootClassifierWizardPage.class.getSimpleName(), metadata); - this.extension = extension; - } - - @Override - protected void createFieldControls(Composite composite) { - Label label = new Label(composite, SWT.NONE); - label.setText(WorkbenchMessages.CreateFileWizardPage_label_file); - text = new Text(composite, SWT.BORDER); - text.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); - text.addModifyListener(validator); - button = new Button(composite, SWT.PUSH); - button.setText(WorkbenchMessages.CreateFileWizardPage_button_browse); - button.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> selectPath())); - super.createFieldControls(composite); - } - - protected void selectPath() { - String selected = LocWokbench.selectSavePath(getShell(), extension); - if (selected != null) { - text.setText(selected); - } - } - - @Override - protected void initControls() { - super.initControls(); - text.setText(basePath() + File.separator + new EObjectNameIdentifier(eClass).apply('.') + '.' + extension); - } - - protected String basePath() { - return System.getProperty("user.home"); //$NON-NLS-1$ - } - - protected String path() { - String path = text.getText(); - if (!path.endsWith('.' + extension)) { - path = path + '.' + extension; - } - return path; - } - - @Override - protected boolean validatePage() { - // FIXME: further improvements required for diagnostic (!exists, etc.) - if (path().isEmpty()) { - setErrorMessage(WorkbenchMessages.CreateFileWizardPage_e_specify_path); - return false; - } - return super.validatePage(); - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/LocImages.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/LocImages.java deleted file mode 100644 index 5f32885b3..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/LocImages.java +++ /dev/null @@ -1,27 +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.jface; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.swt.graphics.Image; - -public interface LocImages { - - String IMG_TOOL_ADD = "IMG_TOOL_ADD"; //$NON-NLS-1$ - String IMG_TOOL_EDIT = "IMG_TOOL_EDIT"; //$NON-NLS-1$ - String IMG_TOOL_REMOVE = "IMG_TOOL_REMOVE"; //$NON-NLS-1$ - - public Image getImage(String identifier); - public ImageDescriptor getImageDescriptor(String identifier); - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/Appearance.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/Appearance.java deleted file mode 100644 index 2450a4ced..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/Appearance.java +++ /dev/null @@ -1,103 +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.jface.dialogs; - -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.graphics.Image; - -/** - * Encapsulates dialog appearance to reduce the number of arguments in methods - * - * @since 0.6 - * - */ -public final class Appearance { - - private final String title; - private final Supplier image; - private final LabelProvider labels; - - /** - * Creates the dialog appearance descriptor with the given non-null - * title, default image supplier and default label provider will be used - * - * @param title title for dialog, must not be null - * - */ - public Appearance(String title) { - this(title, () -> LicensingImages.getImageRegistry().get(LicensingImages.IMG_DEFAULT)); - } - - /** - * Creates the dialog appearance descriptor with the given non-null - * title and image, default label provider will be used - * - * @param title title for dialog, must not be null - * @param image image supplier for dialog, must not be null - * - */ - public Appearance(String title, Supplier image) { - this(title, image, new LabelProvider()); - } - - /** - * Creates the dialog appearance descriptor with the given non-null - * title, image supplier, and label provider - * - * @param title title for dialog, must not be null - * @param image supplier of the image for dialog, must not be null - * @param labels label provider for dialog, must not be null - * - */ - public Appearance(String title, Supplier image, LabelProvider labels) { - Objects.requireNonNull(title, WorkbenchMessages.Appearance_e_null_title); - Objects.requireNonNull(image, WorkbenchMessages.Appearance_e_null_image); - Objects.requireNonNull(labels, WorkbenchMessages.Appearance_e_null_labels); - this.title = title; - this.image = image; - this.labels = labels; - } - - /** - * The title to use for dialog's shell - * - * @return non-null title - */ - public String title() { - return title; - } - - /** - * The image supplier to use for dialog's shell - * - * @return non-null image supplier - */ - public Supplier image() { - return image; - } - - /** - * The {@link LabelProvider} to use for dialog - * - * @return non-null label provider - */ - public LabelProvider labelProvider() { - return labels; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/DateDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/DateDialog.java deleted file mode 100644 index 3d8917052..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/DateDialog.java +++ /dev/null @@ -1,66 +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.jface.dialogs; - -import java.time.LocalDate; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.DateTime; -import org.eclipse.swt.widgets.Shell; - -public class DateDialog extends Dialog { - - private DateTime calendar; - private LocalDate selected; - - public DateDialog(Shell shell, LocalDate initial) { - super(shell); - this.selected = initial != null ? initial : LocalDate.now(); - } - - @Override - protected Control createDialogArea(Composite parent) { - Composite area = (Composite) super.createDialogArea(parent); - calendar = new DateTime(area, SWT.CALENDAR | SWT.BORDER); - showLocalDate(selected); - return area; - } - - protected LocalDate collectLocalDateTime() { - int year = calendar.getYear(); - int month = calendar.getMonth(); - int day = calendar.getDay(); - return LocalDate.of(year, month + 1, day); - } - - protected void showLocalDate(LocalDate localDate) { - int year = localDate.getYear(); - int month = localDate.getMonthValue(); - int day = localDate.getDayOfMonth(); - calendar.setDate(year, month - 1, day); - } - - @Override - protected void okPressed() { - selected = collectLocalDateTime(); - super.okPressed(); - } - - public LocalDate getSelected() { - return selected; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/FilteredSelectionDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/FilteredSelectionDialog.java deleted file mode 100644 index bdbe99d80..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/FilteredSelectionDialog.java +++ /dev/null @@ -1,190 +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.jface.dialogs; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.KeyListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.swt.widgets.Text; - -public class FilteredSelectionDialog extends ObjectSelectionStatusDialog { - - private static final int DIALOG_HEIGHT = 500; - private static final int DIALOG_WIDTH = 400; - private final boolean multi; - private Image image; - private Text filteringField; - private Label resultingField; - private TableViewer tableViewItems; - private final List input = new ArrayList<>(); - - private LabelProvider labelProvider = new LabelProvider(); - private ViewerSearchFilter filter; - - public FilteredSelectionDialog(Shell parent, boolean multi, ViewerSearchFilter filter) { - super(parent); - this.multi = multi; - this.filter = filter; - } - - public void setImage(Image image) { - this.image = image; - } - - public void setInput(Iterable objects) { - input.clear(); - objects.forEach(input::add); - - } - - public void setLabelProvider(LabelProvider labelProvider) { - this.labelProvider = labelProvider; - } - - @Override - protected void computeResult() { - @SuppressWarnings("unchecked") - List selectedElements = tableViewItems.getStructuredSelection().toList(); - setResult(selectedElements); - } - - @Override - protected Control createDialogArea(Composite parent) { - Composite area = (Composite) super.createDialogArea(parent); - - Composite content = new Composite(area, SWT.NONE); - content.setLayoutData(new GridData(GridData.FILL_BOTH)); - - Label lblFilteringField = new Label(content, SWT.NONE); - { - GridData data = new GridData(SWT.FILL, SWT.FILL, true, false); - lblFilteringField.setLayoutData(data); - lblFilteringField.setText(WorkbenchMessages.FilteredSelectionDialog_filtering_label); - } - - filteringField = new Text(content, SWT.BORDER); - { - GridData data = new GridData(SWT.FILL, SWT.FILL, true, false); - filteringField.setLayoutData(data); - - } - - filteringField.addKeyListener(new KeyListener() { - - @Override - public void keyReleased(KeyEvent e) { - if (filter != null) { - filter.setFilteringText(getFilteringField()); - tableViewItems.refresh(); - Table table = tableViewItems.getTable(); - if (table.getItemCount() > 0) { - TableItem item = table.getItem(0); - if (item != null) { - resultingField.setText(item.getText()); - table.setSelection(item); - } - } - } - } - - @Override - public void keyPressed(KeyEvent e) { - - } - }); - - GridLayout layout = new GridLayout(); - layout.numColumns = 1; - layout.marginWidth = 0; - layout.marginHeight = 0; - content.setLayout(layout); - - Label lblListItems = new Label(content, SWT.NONE); - { - GridData data = new GridData(SWT.FILL, SWT.FILL, true, false); - lblListItems.setLayoutData(data); - lblListItems.setText(WorkbenchMessages.FilteredSelectionDialog_items_label); - } - - tableViewItems = new TableViewer(content, (multi ? SWT.MULTI : SWT.SINGLE) | SWT.BORDER | SWT.V_SCROLL); - tableViewItems.setContentProvider(ArrayContentProvider.getInstance()); - tableViewItems.setLabelProvider(labelProvider); - tableViewItems.setInput(input); - tableViewItems.setSelection(new StructuredSelection(getInitialSelection().toArray())); - tableViewItems.getTable().addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - int selectionIndex = tableViewItems.getTable().getSelectionIndex(); - TableItem item = tableViewItems.getTable().getItem(selectionIndex); - if (item != null) { - resultingField.setText(item.getText()); - } - } - }); - if (filter != null) { - tableViewItems.setFilters(filter); - } - - GridData gd = new GridData(GridData.FILL_BOTH); - applyDialogFont(tableViewItems.getTable()); - gd.heightHint = tableViewItems.getTable().getItemHeight() * 15; - tableViewItems.getTable().setLayoutData(gd); - tableViewItems.addDoubleClickListener(event -> handleDoubleClick()); - - resultingField = new Label(content, SWT.BORDER); - { - GridData data = new GridData(SWT.FILL, SWT.FILL, true, false); - resultingField.setLayoutData(data); - - } - - applyDialogFont(content); - return area; - } - - protected void handleDoubleClick() { - okPressed(); - } - - public String getFilteringField() { - return filteringField.getText(); - } - - @Override - protected void configureShell(Shell shell) { - shell.setMinimumSize(DIALOG_WIDTH, DIALOG_HEIGHT); - if (image != null) { - shell.setImage(image); - } - super.configureShell(shell); - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/LabelSearchFilter.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/LabelSearchFilter.java deleted file mode 100644 index c2be39b84..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/LabelSearchFilter.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.jface.dialogs; - -import org.eclipse.jface.viewers.ContentViewer; -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.Viewer; - -public class LabelSearchFilter extends ViewerSearchFilter { - - public LabelSearchFilter() { - super(String.class); - } - - @Override - protected String convertElement(Viewer viewer, Object parentElement, Object element, Class elementClass) { - if (viewer instanceof ContentViewer) { - ContentViewer contentViewer = (ContentViewer) viewer; - IBaseLabelProvider baseLabelProvider = contentViewer.getLabelProvider(); - if (baseLabelProvider instanceof ILabelProvider) { - ILabelProvider labelProvider = (ILabelProvider) baseLabelProvider; - return labelProvider.getText(element); - } - } - return null; - } - - @Override - protected boolean selectElement(Viewer viewer, Object parentElement, String element, String searchText) { - if (getSearchPattern().matcher(element).matches()) { - return true; - } - return false; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ObjectSelectionStatusDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ObjectSelectionStatusDialog.java deleted file mode 100644 index 794c61497..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ObjectSelectionStatusDialog.java +++ /dev/null @@ -1,102 +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.jface.dialogs; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jface.dialogs.AbstractSelectionDialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.passage.lic.jface.widgets.StatusLine; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; - -public abstract class ObjectSelectionStatusDialog extends AbstractSelectionDialog { - - private StatusLine statusLine; - - private IStatus lastStatus; - - public ObjectSelectionStatusDialog(Shell shell) { - super(shell); - } - - protected abstract void computeResult(); - - protected void updateStatus(IStatus status) { - lastStatus = status; - if (statusLine != null && !statusLine.isDisposed()) { - updateButtonsEnableState(status); - statusLine.setStatus(status); - } - } - - /** - * Update the status of the ok button to reflect the given status. Subclasses - * may override this method to update additional buttons. - * - * @param status - */ - protected void updateButtonsEnableState(IStatus status) { - Button okButton = getButton(IDialogConstants.OK_ID); - if (okButton != null && !okButton.isDisposed()) { - okButton.setEnabled(!status.matches(IStatus.ERROR)); - } - } - - @Override - protected void okPressed() { - computeResult(); - super.okPressed(); - } - - @Override - public void create() { - super.create(); - if (lastStatus != null) { - updateStatus(lastStatus); - } - } - - @Override - protected Control createButtonBar(Composite parent) { - Font font = parent.getFont(); - Composite composite = new Composite(parent, SWT.NULL); - GridLayout layout = new GridLayout(); - layout.marginHeight = 0; - layout.marginLeft = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); - layout.marginWidth = 0; - composite.setLayout(layout); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - composite.setFont(font); - - if (isHelpAvailable()) { - createHelpControl(composite); - } - statusLine = new StatusLine(composite); - statusLine.setAlignment(SWT.LEFT); - statusLine.setStatus(null); - statusLine.setFont(font); - statusLine.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - boolean helpAvailable = isHelpAvailable(); - setHelpAvailable(false); - super.createButtonBar(composite); - setHelpAvailable(helpAvailable); - return composite; - } -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ViewerSearchFilter.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ViewerSearchFilter.java deleted file mode 100644 index 1a01757a2..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/jface/dialogs/ViewerSearchFilter.java +++ /dev/null @@ -1,66 +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.jface.dialogs; - -import java.util.regex.Pattern; - -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; - -public abstract class ViewerSearchFilter extends ViewerFilter { - - protected final Class elementClass; - - protected String searchText = ""; //$NON-NLS-1$ - - protected ViewerSearchFilter(Class elementClass) { - this.elementClass = elementClass; - } - - public void setFilteringText(String filteringText) { - this.searchText = filteringText; - } - - protected Pattern getSearchPattern() { - Pattern pattern = Pattern.compile(".*" + searchText + ".*"); //$NON-NLS-1$ //$NON-NLS-2$ - return pattern; - } - - protected String getNotNullValue(String text) { - if (text == null) { - return ""; //$NON-NLS-1$ - } - return text; - } - - @Override - public boolean select(Viewer viewer, Object parentElement, Object element) { - if (searchText.isEmpty()) { - return true; - } - T converted = convertElement(viewer, parentElement, element, elementClass); - if (converted != null) { - return selectElement(viewer, parentElement, converted, searchText); - } - return false; - } - - protected T convertElement(Viewer viewer, Object parentElement, Object element, Class elementClass) { - if (elementClass.isInstance(element)) { - return elementClass.cast(element); - } - return null; - } - - protected abstract boolean selectElement(Viewer viewer, Object parentElement, T element, String searchText); -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocLifeCycle.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocLifeCycle.java deleted file mode 100644 index 4954e29c3..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocLifeCycle.java +++ /dev/null @@ -1,32 +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.workbench; - -import org.eclipse.e4.ui.workbench.lifecycle.PostContextCreate; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.jface.window.Window; -import org.eclipse.passage.lic.jface.ImageFinder; -import org.eclipse.swt.graphics.Image; -import org.osgi.framework.Bundle; - -public class LocLifeCycle { - - @PostContextCreate - void postContextCreate(IApplicationContext context) { - String windowImages = context.getBrandingProperty("windowImages"); //$NON-NLS-1$ - Bundle brandingBundle = context.getBrandingBundle(); - Window.setDefaultImages(ImageFinder.createImageDescriptors(brandingBundle, windowImages, ",").stream() //$NON-NLS-1$ - .map(id -> id.createImage()).toArray(Image[]::new)); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocWokbench.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocWokbench.java deleted file mode 100644 index 64462b35c..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/LocWokbench.java +++ /dev/null @@ -1,198 +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.workbench; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.stream.StreamSupport; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective; -import org.eclipse.e4.ui.model.application.ui.basic.MWindow; -import org.eclipse.e4.ui.workbench.modeling.EPartService; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.emf.edit.domain.IEditingDomainProvider; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.passage.lic.api.ServiceInvocationResult; -import org.eclipse.passage.lic.base.diagnostic.NoErrors; -import org.eclipse.passage.lic.internal.jface.dialogs.licensing.DiagnosticDialog; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistry; -import org.eclipse.passage.loc.internal.emf.EditingDomainRegistryAccess; -import org.eclipse.passage.loc.internal.workbench.CreateRoot; -import org.eclipse.passage.loc.internal.workbench.MandatoryEclipseContext; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.jface.dialogs.FilteredSelectionDialog; -import org.eclipse.passage.loc.jface.dialogs.LabelSearchFilter; -import org.eclipse.passage.loc.workbench.viewers.DomainRegistryLabelProvider; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Shell; - -/** - * @since 1.0 - */ -@SuppressWarnings("restriction") -public class LocWokbench { - - public static final String COMMAND_VIEW_PERSPECTIVE = "org.eclipse.passage.loc.workbench.command.view.perspective"; //$NON-NLS-1$ - public static final String COMMANDPARAMETER_VIEW_PERSPECTIVE_ID = "org.eclipse.passage.loc.workbench.commandparameter.perspective.id"; //$NON-NLS-1$ - - public static final String TOPIC_SHOW = "org/eclipse/passage/loc/workbench/show"; //$NON-NLS-1$ - - public static String selectSavePath(Shell shell, String extension) { - String[] array = maskFilters(extension); - FileDialog fileDialog = new FileDialog(shell, SWT.SAVE); - fileDialog.setFilterExtensions(array); - return fileDialog.open(); - } - - public static String selectLoadPath(Shell shell, String extension, String... others) { - String[] array = maskFilters(extension, others); - FileDialog fileDialog = new FileDialog(shell, SWT.OPEN); - fileDialog.setFilterExtensions(array); - return fileDialog.open(); - } - - private static String[] maskFilters(String extension, String... others) { - List filters = new ArrayList<>(); - filters.add(maskExtension(extension)); - for (String other : others) { - filters.add(maskExtension(other)); - } - String[] array = filters.toArray(new String[filters.size()]); - return array; - } - - private static String maskExtension(String extension) { - return "*." + extension; //$NON-NLS-1$ - } - - public static void createDomainResource(IEclipseContext context, String domain, String perspectiveId) { - EditingDomainRegistryAccess registryAccess = context.get(EditingDomainRegistryAccess.class); - EditingDomainRegistry registry = registryAccess.getDomainRegistry(domain); - if (new CreateRoot<>(new MandatoryEclipseContext(context), domain, registry.getContentClass()).get() - .isPresent()) { - LocWokbench.switchPerspective(context, perspectiveId); - } - } - - public static void loadDomainResource(IEclipseContext eclipseContext, String domain, String perspectiveId) { - EditingDomainRegistryAccess access = eclipseContext.get(EditingDomainRegistryAccess.class); - EditingDomainRegistry registry = access.getDomainRegistry(domain); - // FIXME: rework to remove legacy extensions - String fileExtension = domain + "_xmi"; //$NON-NLS-1$ - Shell shell = eclipseContext.get(Shell.class); - String selected = selectLoadPath(shell, fileExtension, "lic_" + domain); //$NON-NLS-1$ - if (selected == null) { - return; - } - switchPerspective(eclipseContext, perspectiveId); - ServiceInvocationResult source = registry.registerSource(URI.createFileURI(selected)); - if (!new NoErrors().test(source.diagnostic())) { - new DiagnosticDialog(shell, source.diagnostic()).open(); - } - } - - public static void switchPerspective(IEclipseContext context, String perspectiveId) { - EPartService partService = context.get(EPartService.class); - if (partService == null) { - return; - } - Optional switched = partService.switchPerspective(perspectiveId); - if (switched.isPresent()) { - MPerspective perspective = switched.get(); - String label = perspective.getLocalizedLabel(); - IApplicationContext application = context.get(IApplicationContext.class); - if (application == null) { - return; - } - String branding = application.getBrandingName(); - String title = branding + ' ' + '-' + ' ' + label; - MWindow window = context.get(MWindow.class); - window.setLabel(title); - } - } - - public static Object selectClassifier(IEclipseContext context, String classifier, String title, - Iterable input, C initial) { - Shell shell = context.get(Shell.class); - return selectClassifier(shell, classifier, title, input, initial); - } - - public static C selectClassifier(Shell shell, String classifier, String title, Iterable input, - Optional initial, Class clazz) { - Object selected = selectClassifier(shell, classifier, title, input, initial); - if (clazz.isInstance(selected)) { - return clazz.cast(selected); - } - return null; - } - - /** - * @since 1.0 - */ - public static Object selectClassifier(Shell shell, String classifier, String title, Iterable input, - C initial) { - if (input == null) { - return null; - } - long count = StreamSupport.stream(input.spliterator(), false).count(); - if (count == 0) { - MessageDialog.openInformation(shell, title, WorkbenchMessages.LocWokbench_e_nothing_to_select); - return null; - } - if (count == 1) { - return input.iterator().next(); - } - LabelSearchFilter filter = new LabelSearchFilter(); - - FilteredSelectionDialog dialog = new FilteredSelectionDialog(shell, false, filter); - dialog.setTitle(title); - dialog.setImage(LicensingImages.getImage(classifier)); - - dialog.setLabelProvider(new DomainRegistryLabelProvider()); - dialog.setInput(input); - if (initial != null) { - dialog.setInitialSelection(Collections.singletonList(initial)); - } - if (dialog.open() == Dialog.OK) { - return dialog.getFirstResult().orElse(null); - } - return null; - } - - public static EditingDomain extractEditingDomain(IEclipseContext context) { - EditingDomain editingDomain = context.get(EditingDomain.class); - if (editingDomain != null) { - return editingDomain; - } - IEditingDomainProvider provider = context.get(IEditingDomainProvider.class); - if (provider != null) { - return provider.getEditingDomain(); - } - EditingDomainRegistry registry = context.get(EditingDomainRegistry.class); - if (registry instanceof IEditingDomainProvider) { - provider = (IEditingDomainProvider) registry; - return provider.getEditingDomain(); - - } - return null; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/AboutDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/AboutDialog.java deleted file mode 100644 index 428366428..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/AboutDialog.java +++ /dev/null @@ -1,144 +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.workbench.dialogs; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.services.translation.TranslationService; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -public class AboutDialog extends Dialog { - - private static final String PRODUCT_NAME = "%product.name"; //$NON-NLS-1$ - private static final String ABOUT_IMAGE = "aboutImage"; //$NON-NLS-1$ - private static final String ABOUT_TITLE = "%aboutTitle"; //$NON-NLS-1$ - - private static final String PRODUCT_BUNDLE_URL = "platform:/plugin/%s"; //$NON-NLS-1$ - private static final String PRODUCT_BUNDLE_ABOUT_IMAGE = "%s//%s"; //$NON-NLS-1$ - private Image productLogo; - - private final TranslationService translations; - private final IApplicationContext applicationContext; - private final String bundleUrl; - - public AboutDialog(Shell parentShell, IEclipseContext context) { - super(parentShell); - translations = context.get(TranslationService.class); - applicationContext = context.get(IApplicationContext.class); - bundleUrl = String.format(PRODUCT_BUNDLE_URL, applicationContext.getBrandingBundle().getSymbolicName()); - } - - @Override - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - String pattern = translations.translate(ABOUT_TITLE, bundleUrl); - String name = translations.translate(PRODUCT_NAME, bundleUrl); - newShell.setText(NLS.bind(pattern, name)); - newShell.setImage(LicensingImages.getImage(LicensingImages.IMG_DEFAULT)); - } - - @Override - protected Control createDialogArea(Composite parent) { - GridLayout workLayout = getLayoutDialogArea(); - Composite base = new Composite(parent, SWT.BORDER); - base.setLayout(workLayout); - base.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - - String productImg = applicationContext.getBrandingProperty(ABOUT_IMAGE); - - if (productImg != null) { - URL url = getUrl(productImg); - if (url != null) { - ImageDescriptor imgDescriptor = ImageDescriptor.createFromURL(url); - if (imgDescriptor != null) { - productLogo = imgDescriptor.createImage(); - } - } - } - - GridData lblGridData = new GridData(SWT.FILL, SWT.FILL, true, true); - - Label lblProductLogo = new Label(base, SWT.BORDER); - if (productLogo != null) { - lblProductLogo.setImage(productLogo); - } - lblProductLogo.setLayoutData(lblGridData); - - GridData txtData = new GridData(SWT.FILL, SWT.FILL, true, true); - String aboutText = ApplicationBranding.getAboutText(applicationContext); - - StyledText txtProductDescription = new StyledText(base, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY); - txtProductDescription.setLayoutData(txtData); - txtProductDescription.setText(aboutText); - txtProductDescription.setEditable(false); - - return parent; - } - - private GridLayout getLayoutDialogArea() { - GridLayout workLayout = new GridLayout(2, false); - workLayout.marginHeight = 0; - workLayout.marginWidth = 0; - workLayout.verticalSpacing = 0; - workLayout.horizontalSpacing = 5; - - return workLayout; - } - - private URL getUrl(String productImg) { - try { - URL url = new URL(String.format(PRODUCT_BUNDLE_ABOUT_IMAGE, bundleUrl, productImg)); - URL found = FileLocator.find(url); - return found; - } catch (MalformedURLException e) { - Logger.getLogger(AboutDialog.class.getName()).log(Level.INFO, e.getMessage(), e); - } - return null; - } - - @Override - protected void createButtonsForButtonBar(Composite parent) { - GridData btnData = new GridData(SWT.RIGHT, SWT.FILL, true, false, 1, 1); - Button btnOk = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); - btnOk.setLayoutData(btnData); - } - - @Override - public boolean close() { - if (productLogo != null) { - productLogo.dispose(); - productLogo = null; - } - return super.close(); - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ApplicationBranding.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ApplicationBranding.java deleted file mode 100644 index c3809bd28..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ApplicationBranding.java +++ /dev/null @@ -1,125 +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.workbench.dialogs; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.MissingResourceException; -import java.util.PropertyResourceBundle; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.equinox.app.IApplicationContext; -import org.osgi.framework.Bundle; - -/** - * A class that provides processing for branding properties. - * - */ -final class ApplicationBranding { - - private static final String[] NO_MAPPINGS = new String[0]; - - /** - * The text to show in an "about" actions for this product. - */ - public static final String ABOUT_TEXT = "aboutText"; //$NON-NLS-1$ - - private static final String ABOUT_MAPPINGS = "$nl$/about.mappings"; //$NON-NLS-1$ - - private static Map mappingsMap = new HashMap<>(4); - - /** - * The text to show in an "about" actions for this product. - *

- * The returned value will have {n} values substituted based on the current - * product's mappings regardless of the given product argument. - *

- */ - public static String getAboutText(IApplicationContext context) { - String property = context.getBrandingProperty(ABOUT_TEXT); - Bundle brandingBundle = context.getBrandingBundle(); - return extractValue(property, brandingBundle); - } - - private static String extractValue(String property, Bundle definingBundle) { - if (property == null) { - return ""; //$NON-NLS-1$ - } - if (property.indexOf('{') == -1) { - return property; - } - String[] tempMappings = getMappings(definingBundle); - /* - * Check if the mapping value is a system property, specified by '$' at the - * beginning and end of the string. If so, update the mappings array with the - * system property value. - */ - for (int i = 0; i < tempMappings.length; i++) { - String nextString = tempMappings[i]; - int length = nextString.length(); - if (length > 2 && nextString.charAt(0) == '$' && nextString.charAt(length - 1) == '$') { - String systemPropertyKey = nextString.substring(1, length - 1); - // If system property is not set, insert an empty String - tempMappings[i] = System.getProperty(systemPropertyKey, ""); //$NON-NLS-1$ ; - } - } - - return MessageFormat.format(property, (Object[]) tempMappings); - } - - private static String[] loadMappings(Bundle definingBundle) { - URL location = FileLocator.find(definingBundle, new Path(ABOUT_MAPPINGS)); - if (location == null) { - return NO_MAPPINGS; - } - PropertyResourceBundle resources = null; - try (InputStream is = location.openStream()) { - resources = new PropertyResourceBundle(is); - } catch (IOException e) { - return NO_MAPPINGS; - } - List mappingsList = new ArrayList<>(); - boolean found = true; - int i = 0; - while (found) { - try { - mappingsList.add(resources.getString(Integer.toString(i))); - } catch (MissingResourceException e) { - found = false; - } - i++; - } - String[] mappings = mappingsList.toArray(new String[mappingsList.size()]); - mappingsMap.put(definingBundle, mappings); - return mappings; - } - - private static String[] getMappings(Bundle definingBundle) { - String[] mappings = mappingsMap.get(definingBundle); - if (mappings == null) { - mappings = loadMappings(definingBundle); - } - if (mappings == null) { - mappings = NO_MAPPINGS; - } - return mappings; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/FileContentDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/FileContentDialog.java deleted file mode 100644 index 1494e0f49..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/FileContentDialog.java +++ /dev/null @@ -1,77 +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.workbench.dialogs; - -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -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; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -public class FileContentDialog extends Dialog { - - private final String filePath; - private Text editor; - - public FileContentDialog(Shell parentShell, String path) { - super(parentShell); - this.filePath = path; - } - - @Override - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - newShell.setText(WorkbenchMessages.FileContentDialog_shell_text); - } - - @Override - protected Control createDialogArea(Composite parent) { - parent.setLayout(new GridLayout(1, false)); - Composite base = new Composite(parent, SWT.BORDER); - base.setLayout(new GridLayout(1, false)); - base.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - editor = new Text(base, SWT.MULTI); - editor.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - scheduleReader(); - return parent; - } - - private void scheduleReader() { - Path path = Paths.get(filePath); - try { - byte[] readAllBytes = Files.readAllBytes(path); - editor.setText(new String(readAllBytes, Charset.defaultCharset())); - } catch (IOException e) { - StringBuilder sb = new StringBuilder(); - sb.append(WorkbenchMessages.FileContentDialog_e_unable_read).append('\n'); - sb.append(e.getMessage()); - editor.setText(sb.toString()); - } - } - - @Override - protected boolean isResizable() { - return true; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageTextValuesDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageTextValuesDialog.java deleted file mode 100644 index 3777fc305..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageTextValuesDialog.java +++ /dev/null @@ -1,94 +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.workbench.dialogs; - -import org.eclipse.jface.dialogs.Dialog; -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; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -public class ManageTextValuesDialog extends Dialog { - - private final String splitter; - - private final String initialValues; - - private Text editor; - private String resultValues; - - public ManageTextValuesDialog(Shell parentShell, String values, String splitter) { - super(parentShell); - this.splitter = splitter; - this.initialValues = values; - } - - @Override - protected void configureShell(Shell shell) { - super.configureShell(shell); - shell.setSize(400, 500); - } - - public String getResultValue() { - return resultValues; - } - - private String prepareResultValues() { - - StringBuilder builder = new StringBuilder(); - for (String item : editor.getText().split("\n")) { //$NON-NLS-1$ - String filtred = item.trim(); - if (filtred.isEmpty()) { - continue; - } - if (builder.length() > 0) { - builder.append(splitter); - } - builder.append(filtred); - } - return builder.toString(); - } - - @Override - protected void buttonPressed(int buttonId) { - if (buttonId == Dialog.OK) { - resultValues = prepareResultValues(); - } - super.buttonPressed(buttonId); - } - - @Override - protected Control createDialogArea(Composite parent) { - - parent.setLayout(new GridLayout(1, false)); - Composite base = new Composite(parent, SWT.BORDER); - base.setLayout(new GridLayout(1, false)); - base.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - editor = new Text(base, SWT.MULTI); - editor.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - - if (initialValues != null) { - String replaced = initialValues.replace(splitter, "\n"); //$NON-NLS-1$ - editor.setText(replaced); - } - return parent; - } - - @Override - protected boolean isResizable() { - return true; - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageValuesDialog.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageValuesDialog.java deleted file mode 100644 index 6947af9fc..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/dialogs/ManageValuesDialog.java +++ /dev/null @@ -1,50 +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.workbench.dialogs; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.swt.widgets.Shell; - -public abstract class ManageValuesDialog extends Dialog { - - V resultValue; - - public ManageValuesDialog(Shell parentShell) { - super(parentShell); - } - - @Override - protected void configureShell(Shell shell) { - super.configureShell(shell); - shell.setSize(400, 500); - } - - public V getResultValue() { - return resultValue; - } - - protected abstract V prepareResultValue(); - - @Override - protected void buttonPressed(int buttonId) { - if (buttonId == Dialog.OK) { - resultValue = prepareResultValue(); - } - super.buttonPressed(buttonId); - } - - @Override - protected boolean isResizable() { - return true; - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ExitWorkbenchHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ExitWorkbenchHandler.java deleted file mode 100644 index ff6725151..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ExitWorkbenchHandler.java +++ /dev/null @@ -1,45 +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.workbench.handlers; - -import javax.inject.Inject; -import javax.inject.Named; - -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.e4.ui.services.IServiceConstants; -import org.eclipse.e4.ui.workbench.IWorkbench; -import org.eclipse.e4.ui.workbench.modeling.EPartService; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.swt.widgets.Shell; - -public class ExitWorkbenchHandler { - @Inject - private IEclipseContext context; - - @Execute - public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell, EPartService partService) - throws ExecutionException { - if (!partService.saveAll(true)) { - return; - } - if (MessageDialog.openQuestion(shell, WorkbenchMessages.ExitWorkbenchHandler_exit_title, WorkbenchMessages.ExitWorkbenchHandler_exit_message)) { - Object workbench = context.get(IWorkbench.class.getName()); - if (workbench != null && workbench instanceof IWorkbench) { - ((IWorkbench) workbench).close(); - } - } - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenAboutDialogHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenAboutDialogHandler.java deleted file mode 100644 index c589ca1b6..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenAboutDialogHandler.java +++ /dev/null @@ -1,36 +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.workbench.handlers; - -import javax.inject.Inject; -import javax.inject.Named; - -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.e4.ui.services.IServiceConstants; -import org.eclipse.passage.loc.workbench.dialogs.AboutDialog; -import org.eclipse.swt.widgets.Shell; - -public class OpenAboutDialogHandler { - - @Inject - private IEclipseContext context; - - @Execute - public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) throws ExecutionException { - AboutDialog dialog = new AboutDialog(shell, context); - dialog.open(); - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenPerspectiveHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenPerspectiveHandler.java deleted file mode 100644 index b9a433cca..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/OpenPerspectiveHandler.java +++ /dev/null @@ -1,58 +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.workbench.handlers; - -import java.util.Objects; -import java.util.Optional; - -import javax.inject.Named; - -import org.eclipse.e4.core.di.annotations.CanExecute; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.e4.ui.model.application.ui.MUIElement; -import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective; -import org.eclipse.e4.ui.model.application.ui.basic.MWindow; -import org.eclipse.e4.ui.workbench.modeling.EModelService; -import org.eclipse.e4.ui.workbench.modeling.EPartService; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class OpenPerspectiveHandler { - - @Execute - public void execute(IApplicationContext applicationContext, MWindow window, EPartService partService, @Named(LocWokbench.COMMANDPARAMETER_VIEW_PERSPECTIVE_ID) String perspectiveId) { - String brandingName = applicationContext.getBrandingName(); - Optional switched = partService.switchPerspective(perspectiveId); - if (switched.isPresent()) { - MPerspective perspective = switched.get(); - String label = perspective.getLocalizedLabel(); - String title = brandingName + ' ' + '-' + ' ' + label; - window.setLabel(title); - } - - } - - @CanExecute - public boolean canExecute(MWindow window, EModelService modelService, @Named(LocWokbench.COMMANDPARAMETER_VIEW_PERSPECTIVE_ID) String perspectiveId) { - MUIElement found = modelService.find(perspectiveId, window); - if (found instanceof MPerspective) { - MPerspective active = modelService.getActivePerspective(window); - if (active == null) { - return true; - } - return !Objects.equals(perspectiveId, active.getElementId()); - } - return false; - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/RedoHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/RedoHandler.java deleted file mode 100644 index 8bc14ef92..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/RedoHandler.java +++ /dev/null @@ -1,63 +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.workbench.handlers; - -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.ui.model.application.ui.menu.MHandledMenuItem; -import org.eclipse.emf.common.command.Command; -import org.eclipse.emf.common.command.CommandStack; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class RedoHandler { - - @Execute - public void execute(IEclipseContext context) { - EditingDomain editingDomain = LocWokbench.extractEditingDomain(context); - editingDomain.getCommandStack().redo(); - } - - - @CanExecute - public boolean canExecute(IEclipseContext context, MHandledMenuItem item) { - EditingDomain editingDomain = LocWokbench.extractEditingDomain(context); - if (editingDomain == null) { - return false; - } - CommandStack commandStack = editingDomain.getCommandStack(); - if (commandStack == null) { - return false; - } - return commandStack.canRedo(); - } - - - protected void updateLabel(IEclipseContext context, MHandledMenuItem item, CommandStack commandStack) { - String base = WorkbenchMessages.RedoHandler_label_base; - Command undoCommand = commandStack.getUndoCommand(); - if (undoCommand == null) { - return; - } - String label = undoCommand.getLabel(); - if (label == null) { - return; - } - String bind = NLS.bind(WorkbenchMessages.RedoHandler_label_pattern, base, label); - item.setLabel(bind); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/SaveHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/SaveHandler.java deleted file mode 100644 index 747377e56..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/SaveHandler.java +++ /dev/null @@ -1,34 +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.workbench.handlers; - -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.e4.ui.model.application.ui.basic.MPart; -import org.eclipse.e4.ui.workbench.modeling.EPartService; -import org.eclipse.e4.core.di.annotations.CanExecute; - -public class SaveHandler { - @Execute - public void execute(EPartService partService) { - MPart activePart = partService.getActivePart(); - partService.savePart(activePart, false); - } - - - @CanExecute - public boolean canExecute(EPartService partService) { - MPart activePart = partService.getActivePart(); - return activePart != null; - } - -} \ No newline at end of file diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/UndoHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/UndoHandler.java deleted file mode 100644 index ec8523a71..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/UndoHandler.java +++ /dev/null @@ -1,63 +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.workbench.handlers; - -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.ui.model.application.ui.menu.MHandledMenuItem; -import org.eclipse.emf.common.command.Command; -import org.eclipse.emf.common.command.CommandStack; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.loc.internal.workbench.i18n.WorkbenchMessages; -import org.eclipse.passage.loc.workbench.LocWokbench; - -public class UndoHandler { - - @Execute - public void execute(IEclipseContext context) { - EditingDomain editingDomain = LocWokbench.extractEditingDomain(context); - editingDomain.getCommandStack().undo(); - } - - - @CanExecute - public boolean canExecute(IEclipseContext context, MHandledMenuItem item) { - EditingDomain editingDomain = LocWokbench.extractEditingDomain(context); - if (editingDomain == null) { - return false; - } - CommandStack commandStack = editingDomain.getCommandStack(); - if (commandStack == null) { - return false; - } - return commandStack.canUndo(); - } - - - protected void updateLabel(IEclipseContext context, MHandledMenuItem item, CommandStack commandStack) { - String base = WorkbenchMessages.UndoHandler_label_base; - Command undoCommand = commandStack.getUndoCommand(); - if (undoCommand == null) { - return; - } - String label = undoCommand.getLabel(); - if (label == null) { - return; - } - String bind = NLS.bind(WorkbenchMessages.UndoHandler_label_handler, base, label); - item.setLabel(bind); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ValidateHandler.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ValidateHandler.java deleted file mode 100644 index 16688deab..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/handlers/ValidateHandler.java +++ /dev/null @@ -1,73 +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.workbench.handlers; - -import org.eclipse.core.runtime.IStatus; -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.ui.workbench.modeling.ESelectionService; -import org.eclipse.emf.common.util.BasicDiagnostic; -import org.eclipse.emf.common.util.Diagnostic; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.util.Diagnostician; -import org.eclipse.emf.edit.ui.EMFEditUIPlugin; -import org.eclipse.jface.dialogs.ErrorDialog; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.passage.loc.internal.emf.LabeledDiagnostician; -import org.eclipse.swt.widgets.Shell; - -public class ValidateHandler { - - @Execute - public void execute(ESelectionService selectionService, Shell shell, IEclipseContext context) { - Object selection = selectionService.getSelection(); - if (selection instanceof EObject) { - EObject eObject = (EObject) selection; - Diagnostician diagnostician = new LabeledDiagnostician(); - Diagnostic validate = diagnostician.validate(eObject); - handleDiagnostic(validate, shell); - } - } - - @CanExecute - public boolean canExecute(ESelectionService selectionService) { - Object selection = selectionService.getSelection(); - if (selection instanceof EObject) { - return true; - } - return false; - } - - protected void handleDiagnostic(Diagnostic diagnostic, Shell shell) { - int severity = diagnostic.getSeverity(); - String title = null; - String message = null; - - if (severity == Diagnostic.ERROR || severity == Diagnostic.WARNING) { - title = EMFEditUIPlugin.INSTANCE.getString("_UI_ValidationProblems_title"); //$NON-NLS-1$ - message = EMFEditUIPlugin.INSTANCE.getString("_UI_ValidationProblems_message"); //$NON-NLS-1$ - } else { - title = EMFEditUIPlugin.INSTANCE.getString("_UI_ValidationResults_title"); //$NON-NLS-1$ - message = EMFEditUIPlugin.INSTANCE.getString( - severity == Diagnostic.OK ? "_UI_ValidationOK_message" : "_UI_ValidationResults_message"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - if (diagnostic.getSeverity() == Diagnostic.OK) { - MessageDialog.openInformation(shell, title, message); - } else { - IStatus status = BasicDiagnostic.toIStatus(diagnostic); - ErrorDialog.openError(shell, title, message, status); - } - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/viewers/DomainRegistryLabelProvider.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/viewers/DomainRegistryLabelProvider.java deleted file mode 100644 index f056c16fd..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/loc/workbench/viewers/DomainRegistryLabelProvider.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.workbench.viewers; - -import org.eclipse.emf.common.notify.AdapterFactory; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.edit.provider.ComposedAdapterFactory; -import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.lic.jface.resource.LicensingImages; -import org.eclipse.passage.lic.products.model.api.ProductVersionFeature; -import org.eclipse.swt.graphics.Image; - -public class DomainRegistryLabelProvider extends LabelProvider { - - private final AdapterFactoryLabelProvider delegate; - - /** - * @since 1.0 - */ - public DomainRegistryLabelProvider() { - this(new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE)); - } - - public DomainRegistryLabelProvider(AdapterFactory adapterFactory) { - this.delegate = new AdapterFactoryLabelProvider(adapterFactory); - } - - @Override - public Image getImage(Object element) { - if (element instanceof Resource) { - return LicensingImages.getImage(LicensingImages.IMG_DEFAULT); - } - return delegate.getImage(element); - } - - @Override - public String getText(Object element) { - // FIXME: move to lic.products.edit - if (element instanceof ProductVersionFeature pvf) { - return getText(pvf.getProductVersion()) + ' ' + ':' + ' ' + pvf.getFeatureIdentifier() + ' ' - + pvf.getFeatureVersion(); - } - return delegate.getText(element); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassName.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassName.java deleted file mode 100644 index e0fdec58c..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassName.java +++ /dev/null @@ -1,45 +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.moveto.lic.emf.edit; - -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.osgi.util.NLS; - -/** - * - * Retrieves localized name for a given {@link EClass} - * - */ -public class EClassName implements Supplier { - - private final EClassResources resources; - - public EClassName(EClassResources resources) { - Objects.requireNonNull(resources, "Null EClassResources"); //$NON-NLS-1$ - this.resources = resources; - } - - public EClassName(EClass eClass) { - Objects.requireNonNull(eClass, "Null EClass"); //$NON-NLS-1$ - this.resources = new EClassResources(eClass); - } - - @Override - public String get() { - return resources.get().getString(NLS.bind("_UI_{0}_type", resources.eClass().getName())); //$NON-NLS-1$ - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassResources.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassResources.java deleted file mode 100644 index bd7edb82f..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EClassResources.java +++ /dev/null @@ -1,81 +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.moveto.lic.emf.edit; - -import java.util.Objects; -import java.util.Optional; -import java.util.function.Supplier; - -import org.eclipse.emf.common.util.ResourceLocator; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.edit.EMFEditPlugin; -import org.eclipse.emf.edit.provider.ComposedAdapterFactory; -import org.eclipse.emf.edit.provider.IItemLabelProvider; - -/** - * - * Supplies EMF {@link ResourceLocator} for a given {@link EObject} or - * {@link EClass} - * - */ -public class EClassResources implements Supplier { - - private final ComposedAdapterFactory adapterFactory; - private final EObject eObject; - - public EClassResources(EObject eObject) { - this(eObject, // - new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE)); - } - - public EClassResources(EClass eClass) { - this(eClass.getEPackage().getEFactoryInstance().create(eClass), - new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE)); - } - - public EClassResources(EObject eObject, ComposedAdapterFactory adapterFactory) { - Objects.requireNonNull(eObject, "Null EObject"); //$NON-NLS-1$ - Objects.requireNonNull(adapterFactory, "Null ComposedAdapterFactory"); //$NON-NLS-1$ - this.eObject = eObject; - this.adapterFactory = adapterFactory; - } - - /** - * The {@link EClass} that these resources dedicated for - * - * @return the {@link EClass} - */ - public EClass eClass() { - return eObject.eClass(); - } - - /** - * The {@link ComposedAdapterFactory} that will be used to resolve resoures - * - * @return the {@link EClass} - */ - public ComposedAdapterFactory adapterFactory() { - return adapterFactory; - } - - @Override - public ResourceLocator get() { - return Optional.ofNullable(// - adapterFactory.adapt(eObject, IItemLabelProvider.class))// - .filter(ResourceLocator.class::isInstance)// - .map(ResourceLocator.class::cast)// - .orElse(EMFEditPlugin.INSTANCE); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectDefaultName.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectDefaultName.java deleted file mode 100644 index 563881237..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectDefaultName.java +++ /dev/null @@ -1,47 +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.moveto.lic.emf.edit; - -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.osgi.util.NLS; -import org.eclipse.passage.moveto.lic.internal.emf.edit.i18n.EmfEditMessages; - -/** - * - * Retrieves localized name for a new {@link EObject} - * - */ -public class EObjectDefaultName implements Supplier { - - private final EClassResources resources; - - public EObjectDefaultName(EClassResources resources) { - Objects.requireNonNull(resources, "Null EClassResources"); //$NON-NLS-1$ - this.resources = resources; - } - - public EObjectDefaultName(EClass eClass) { - Objects.requireNonNull(eClass, "Null EClass"); //$NON-NLS-1$ - this.resources = new EClassResources(eClass); - } - - @Override - public String get() { - return NLS.bind(EmfEditMessages.EObjectDefaultName_new, new EClassName(resources).get()); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectNameIdentifier.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectNameIdentifier.java deleted file mode 100644 index 3c4cc030f..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/emf/edit/EObjectNameIdentifier.java +++ /dev/null @@ -1,45 +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.moveto.lic.emf.edit; - -import java.util.Objects; -import java.util.function.Function; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; - -/** - * - * Retrieves name-based identifier for a new {@link EObject} - * - */ -public class EObjectNameIdentifier implements Function { - - private final EObjectDefaultName name; - - public EObjectNameIdentifier(EClassResources resources) { - Objects.requireNonNull(resources, "Null EClassResources"); //$NON-NLS-1$ - this.name = new EObjectDefaultName(resources); - } - - public EObjectNameIdentifier(EClass eClass) { - Objects.requireNonNull(eClass, "Null EClass"); //$NON-NLS-1$ - this.name = new EObjectDefaultName(eClass); - } - - @Override - public String apply(Character separator) { - return name.get().replace(' ', separator).toLowerCase(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.java b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.java deleted file mode 100644 index 52b027d41..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.java +++ /dev/null @@ -1,27 +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.moveto.lic.internal.emf.edit.i18n; - -import org.eclipse.osgi.util.NLS; - -public class EmfEditMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.passage.moveto.lic.internal.emf.edit.i18n.EmfEditMessages"; //$NON-NLS-1$ - public static String EObjectDefaultName_new; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, EmfEditMessages.class); - } - - private EmfEditMessages() { - } -} diff --git a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.properties b/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.properties deleted file mode 100644 index 7fc739162..000000000 --- a/bundles/org.eclipse.passage.loc.workbench/src/org/eclipse/passage/moveto/lic/internal/emf/edit/i18n/EmfEditMessages.properties +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 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 -############################################################################### - -EObjectDefaultName_new=New {0} diff --git a/bundles/org.eclipse.passage.loc.workspace/.classpath b/bundles/org.eclipse.passage.loc.workspace/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/bundles/org.eclipse.passage.loc.workspace/.project b/bundles/org.eclipse.passage.loc.workspace/.project deleted file mode 100644 index 4151d2de2..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/.project +++ /dev/null @@ -1,46 +0,0 @@ - - - org.eclipse.passage.loc.workspace - - - - - - 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.workspace/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.workspace/META-INF/MANIFEST.MF deleted file mode 100644 index a9cd060bf..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/META-INF/MANIFEST.MF +++ /dev/null @@ -1,16 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.workspace -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.workspace;singleton:=true -Bundle-Version: 3.1.0.qualifier -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Bundle-ActivationPolicy: lazy -Require-Bundle: org.eclipse.core.runtime;bundle-version="0.0.0", - org.eclipse.passage.lic.base;bundle-version="0.0.0", - org.eclipse.passage.lic.equinox;bundle-version="0.0.0", - org.eclipse.passage.loc.api;bundle-version="0.0.0", - org.eclipse.passage.lic.execute;bundle-version="0.0.0" -Export-Package: org.eclipse.passage.loc.workspace;x-friends:="org.eclipse.passage.loc.operator.gear" diff --git a/bundles/org.eclipse.passage.loc.workspace/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.passage.loc.workspace/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 4b3be5b03..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/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 Workspace -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.workspace/about.html b/bundles/org.eclipse.passage.loc.workspace/about.html deleted file mode 100644 index 164f781a8..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/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.workspace/build.properties b/bundles/org.eclipse.passage.loc.workspace/build.properties deleted file mode 100644 index 7a7a6a3c4..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/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.workspace/src/org/eclipse/passage/loc/workspace/CollectiveWorkspace.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/CollectiveWorkspace.java deleted file mode 100644 index 6a8ec07f0..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/CollectiveWorkspace.java +++ /dev/null @@ -1,79 +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.workspace; - -import org.eclipse.passage.loc.internal.api.workspace.Agreements; -import org.eclipse.passage.loc.internal.api.workspace.Features; -import org.eclipse.passage.loc.internal.api.workspace.Keys; -import org.eclipse.passage.loc.internal.api.workspace.LicensePacks; -import org.eclipse.passage.loc.internal.api.workspace.Licenses; -import org.eclipse.passage.loc.internal.api.workspace.OperatorWorkspace; -import org.eclipse.passage.loc.internal.api.workspace.Products; -import org.eclipse.passage.loc.internal.api.workspace.Users; - -public final class CollectiveWorkspace implements OperatorWorkspace { - - private final Features features; - private final Products products; - private final Keys keys; - private final LicensePacks packs; - private final Agreements agreements; - private final Licenses licenses; - private final Users users; - - public CollectiveWorkspace() { - this.features = new UncertainFeatures(); - this.products = new UncertainProducts(); - this.keys = new HomeBasedKeys(); - this.packs = new HomeBasedLicensePacks(); - this.agreements = new HomeBasedAgreements(); - this.licenses = new UncertainLicenses(); - this.users = new UncertainUsers(); - } - - @Override - public Features features() { - return features; - } - - @Override - public Products products() { - return products; - } - - @Override - public Keys keys() { - return keys; - } - - @Override - public LicensePacks licensePacks() { - return packs; - } - - @Override - public Agreements agreements() { - return agreements; - } - - @Override - public Licenses licenses() { - return licenses; - } - - @Override - public Users users() { - return users; - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/DomainFileExtension.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/DomainFileExtension.java deleted file mode 100644 index a9e73d093..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/DomainFileExtension.java +++ /dev/null @@ -1,28 +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.workspace; - -import org.eclipse.passage.lic.base.io.PassageFileExtension; - -interface DomainFileExtension { - - public static final class Keys extends PassageFileExtension { - - @Override - public String get() { - return ".keys_xmi"; //$NON-NLS-1$ - } - - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedAgreements.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedAgreements.java deleted file mode 100644 index 1f4b9c275..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedAgreements.java +++ /dev/null @@ -1,62 +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.workspace; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.passage.lic.base.io.LicensingFolder; -import org.eclipse.passage.lic.base.io.UserHomePath; -import org.eclipse.passage.lic.execute.InstallationPath; -import org.eclipse.passage.loc.internal.api.workspace.Agreements; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; - -final class HomeBasedAgreements implements Agreements { - - private final Path residence; - - HomeBasedAgreements() { - this.residence = new LicensingFolder(new UserHomePath()).get().resolve("agreements"); //$NON-NLS-1$ - } - - @Override - public ResourceHandle located(String file, EObject agreement) { - return new LocalFileHandle(text, residence.resolve(file)); - } - - @Override - public boolean exists(String file, EObject agreement) { - return Files.exists(residence.resolve(file)); - } - - @Override - public List all() { - return new LoadResourceSet(// - xmi, // - new InstallationPath(), // - "agreements" //$NON-NLS-1$ - ).load(); - } - - @Override - public void memento(List locations) { - new StoreResourceSet(// - new InstallationPath(), // - "agreements" //$NON-NLS-1$ - ).store(locations); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedKeys.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedKeys.java deleted file mode 100644 index 793317697..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedKeys.java +++ /dev/null @@ -1,70 +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.workspace; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Optional; - -import org.eclipse.passage.lic.base.io.FileNameFromLicensedProduct; -import org.eclipse.passage.lic.base.io.LicensingFolder; -import org.eclipse.passage.lic.base.io.PassageFileExtension; -import org.eclipse.passage.lic.base.io.PathFromLicensedProduct; -import org.eclipse.passage.lic.base.io.UserHomePath; -import org.eclipse.passage.loc.internal.api.workspace.Keys; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; - -final class HomeBasedKeys implements Keys { - - private final Path residence; - private final PassageFileExtension keys = new DomainFileExtension.Keys(); - - HomeBasedKeys() { - this.residence = new LicensingFolder(new UserHomePath()).get(); - } - - @Override - public Optional existing(String product, String version) { - return reportExistance(residentFile(product, version, keys)); - } - - @Override - public ResourceHandle located(String product, String version) { - return new LocalFileHandle(xmi, residentFile(product, version, keys)); - } - - @Override - public ResourceHandle locatedPub(String product, String version) { - return new LocalFileHandle(pub, residentFile(product, version, new PassageFileExtension.PublicKey())); - } - - private Path residentFile(String product, String version, PassageFileExtension ext) { - return productResidence(product, version).resolve(// - fileForProduct(product, version, ext)); - } - - private Optional reportExistance(Path file) { - return Files.exists(file) // - ? Optional.of(file.toAbsolutePath().toString()) // - : Optional.empty(); - } - - private String fileForProduct(String product, String version, PassageFileExtension ext) { - return new FileNameFromLicensedProduct(product, version, ext).get(); - } - - private Path productResidence(String product, String version) { - return new PathFromLicensedProduct(() -> residence, product, version).get(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedLicensePacks.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedLicensePacks.java deleted file mode 100644 index 8184bece0..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/HomeBasedLicensePacks.java +++ /dev/null @@ -1,37 +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.workspace; - -import java.nio.file.Path; -import java.util.function.Supplier; - -import org.eclipse.passage.lic.base.io.LicensingFolder; -import org.eclipse.passage.lic.base.io.PathFromLicensedProduct; -import org.eclipse.passage.lic.base.io.UserHomePath; -import org.eclipse.passage.loc.internal.api.workspace.FolderHandle; -import org.eclipse.passage.loc.internal.api.workspace.LicensePacks; - -public final class HomeBasedLicensePacks implements LicensePacks { - - private final Supplier residence; - - HomeBasedLicensePacks() { - this.residence = new LicensingFolder(new UserHomePath()); - } - - @Override - public FolderHandle packResidence(String pack, String product, String version) { - return new LocalFolderHandle(new PathFromLicensedProduct(residence, product, version).get().resolve(pack)); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LoadResourceSet.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LoadResourceSet.java deleted file mode 100644 index 94af0086e..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LoadResourceSet.java +++ /dev/null @@ -1,59 +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.workspace; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; -import org.eclipse.passage.loc.internal.api.workspace.ResourceType; - -public final class LoadResourceSet { - - private final Supplier base; - private final String domain; - private final ResourceType type; - - public LoadResourceSet(ResourceType type, Supplier path, String domain) { - this.base = Objects.requireNonNull(path); - this.domain = Objects.requireNonNull(domain); - this.type = Objects.requireNonNull(type); - } - - public List load() { - try { - Path parent = base.get(); - Files.createDirectories(parent); - Path path = parent.resolve(domain); - if (!Files.exists(path)) { - // FIXME: AF: log? - return Collections.emptyList(); - } - return Files.readAllLines(path).stream()// - .map(Paths::get)// - .map(p -> new LocalFileHandle(type, path))// - .collect(Collectors.toList()); - } catch (Exception e) { - Platform.getLog(getClass()).error(e.getMessage(), e); - } - return Collections.emptyList(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFileHandle.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFileHandle.java deleted file mode 100644 index 099142420..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFileHandle.java +++ /dev/null @@ -1,69 +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.workspace; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.nio.file.Path; -import java.util.Objects; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; -import org.eclipse.passage.loc.internal.api.workspace.ResourceType; - -class LocalFileHandle implements ResourceHandle { - - private final ResourceType type; - private final Path path; - - public LocalFileHandle(ResourceType type, Path path) { - this.type = Objects.requireNonNull(type); - this.path = Objects.requireNonNull(path); - } - - @Override - public String info() { - return path.toAbsolutePath().toString(); - } - - @Override - public void write(byte[] content) throws Exception { - File file = path.toFile(); - file.getParentFile().mkdirs(); - try (OutputStream out = new FileOutputStream(file)) { - out.write(content); - out.flush(); - } - } - - @Override - public byte[] content() throws Exception { - try (FileInputStream stream = new FileInputStream(path.toFile())) { - return stream.readAllBytes(); - } - } - - @Override - public ResourceType type() { - return type; - } - - @Override - public String uri() { - return URI.createFileURI(path.toFile().toString()).toString(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFolderHandle.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFolderHandle.java deleted file mode 100644 index 13e043524..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/LocalFolderHandle.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.workspace; - -import java.nio.file.Path; - -import org.eclipse.passage.loc.internal.api.workspace.FolderHandle; - -final class LocalFolderHandle implements FolderHandle { - - private final Path path; - - LocalFolderHandle(Path path) { - this.path = path; - } - - @Override - public String uri() { - return path.toString(); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/StoreResourceSet.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/StoreResourceSet.java deleted file mode 100644 index 4d422d123..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/StoreResourceSet.java +++ /dev/null @@ -1,47 +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.workspace; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Objects; -import java.util.function.Supplier; - -import org.eclipse.core.runtime.Platform; - -public final class StoreResourceSet { - - private final Supplier base; - private final String domain; - - public StoreResourceSet(Supplier path, String domain) { - this.base = Objects.requireNonNull(path); - this.domain = Objects.requireNonNull(domain); - } - - public void store(List locations) { - try { - Path parent = base.get(); - Files.createDirectories(parent); - Path path = parent.resolve(domain); - if (!Files.exists(path)) { - Files.createFile(path); - } - Files.write(path, locations); - } catch (Exception e) { - Platform.getLog(getClass()).error(e.getMessage(), e); - } - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainFeatures.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainFeatures.java deleted file mode 100644 index 363e65678..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainFeatures.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.eclipse.passage.loc.workspace; - -import java.util.List; - -import org.eclipse.passage.lic.execute.InstallationPath; -import org.eclipse.passage.loc.internal.api.workspace.Features; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; - -final class UncertainFeatures implements Features { - - @Override - public List all() { - return new LoadResourceSet(// - xmi, // - new InstallationPath(), // - "features" //$NON-NLS-1$ - ).load(); - } - - @Override - public void memento(List locations) { - new StoreResourceSet(// - new InstallationPath(), // - "features" //$NON-NLS-1$ - ).store(locations); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainLicenses.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainLicenses.java deleted file mode 100644 index efdad53ec..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainLicenses.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.eclipse.passage.loc.workspace; - -import java.util.List; - -import org.eclipse.passage.lic.execute.InstallationPath; -import org.eclipse.passage.loc.internal.api.workspace.Licenses; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; - -final class UncertainLicenses implements Licenses { - - @Override - public List all() { - return new LoadResourceSet(// - xmi, // - new InstallationPath(), // - "licenses" //$NON-NLS-1$ - ).load(); - } - - @Override - public void memento(List locations) { - new StoreResourceSet(// - new InstallationPath(), // - "licenses" //$NON-NLS-1$ - ).store(locations); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainProducts.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainProducts.java deleted file mode 100644 index 450e85aa3..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainProducts.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.eclipse.passage.loc.workspace; - -import java.util.List; - -import org.eclipse.passage.lic.execute.InstallationPath; -import org.eclipse.passage.loc.internal.api.workspace.Products; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; - -final class UncertainProducts implements Products { - - @Override - public List all() { - return new LoadResourceSet(// - xmi, // - new InstallationPath(), // - "products" //$NON-NLS-1$ - ).load(); - } - - @Override - public void memento(List locations) { - new StoreResourceSet(// - new InstallationPath(), // - "products" //$NON-NLS-1$ - ).store(locations); - } - -} diff --git a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainUsers.java b/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainUsers.java deleted file mode 100644 index 9b6f61a56..000000000 --- a/bundles/org.eclipse.passage.loc.workspace/src/org/eclipse/passage/loc/workspace/UncertainUsers.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.eclipse.passage.loc.workspace; - -import java.util.List; - -import org.eclipse.passage.lic.execute.InstallationPath; -import org.eclipse.passage.loc.internal.api.workspace.ResourceHandle; -import org.eclipse.passage.loc.internal.api.workspace.Users; - -final class UncertainUsers implements Users { - - @Override - public List all() { - return new LoadResourceSet(// - xmi, // - new InstallationPath(), // - "users" //$NON-NLS-1$ - ).load(); - } - - @Override - public void memento(List locations) { - new StoreResourceSet(// - new InstallationPath(), // - "users" //$NON-NLS-1$ - ).store(locations); - } - -} diff --git a/features/org.eclipse.passage.loc.agreements.feature/.project b/features/org.eclipse.passage.loc.agreements.feature/.project deleted file mode 100644 index 12241ddc9..000000000 --- a/features/org.eclipse.passage.loc.agreements.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.agreements.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.agreements.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.agreements.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.agreements.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.agreements.feature/build.properties b/features/org.eclipse.passage.loc.agreements.feature/build.properties deleted file mode 100644 index d00f09508..000000000 --- a/features/org.eclipse.passage.loc.agreements.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.agreements.feature/feature.properties b/features/org.eclipse.passage.loc.agreements.feature/feature.properties deleted file mode 100644 index 753af831e..000000000 --- a/features/org.eclipse.passage.loc.agreements.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Agreements -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Agreements -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/features/org.eclipse.passage.loc.agreements.feature/feature.xml b/features/org.eclipse.passage.loc.agreements.feature/feature.xml deleted file mode 100644 index 6f22492ca..000000000 --- a/features/org.eclipse.passage.loc.agreements.feature/feature.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.dashboard.feature/.project b/features/org.eclipse.passage.loc.dashboard.feature/.project deleted file mode 100644 index 87216b814..000000000 --- a/features/org.eclipse.passage.loc.dashboard.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.dashboard.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.dashboard.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.dashboard.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.dashboard.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.dashboard.feature/build.properties b/features/org.eclipse.passage.loc.dashboard.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.dashboard.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.dashboard.feature/feature.properties b/features/org.eclipse.passage.loc.dashboard.feature/feature.properties deleted file mode 100644 index 06caa1d1f..000000000 --- a/features/org.eclipse.passage.loc.dashboard.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Dashboard -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Dashboard -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/features/org.eclipse.passage.loc.dashboard.feature/feature.xml b/features/org.eclipse.passage.loc.dashboard.feature/feature.xml deleted file mode 100644 index 89ef7f9f7..000000000 --- a/features/org.eclipse.passage.loc.dashboard.feature/feature.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.edit.ui.feature/.project b/features/org.eclipse.passage.loc.edit.ui.feature/.project deleted file mode 100644 index 29dd32adb..000000000 --- a/features/org.eclipse.passage.loc.edit.ui.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.edit.ui.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.edit.ui.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.edit.ui.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.edit.ui.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.edit.ui.feature/build.properties b/features/org.eclipse.passage.loc.edit.ui.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.edit.ui.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.edit.ui.feature/feature.properties b/features/org.eclipse.passage.loc.edit.ui.feature/feature.properties deleted file mode 100644 index 31be6a175..000000000 --- a/features/org.eclipse.passage.loc.edit.ui.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Edit UI -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Edit UI -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/features/org.eclipse.passage.loc.edit.ui.feature/feature.xml b/features/org.eclipse.passage.loc.edit.ui.feature/feature.xml deleted file mode 100644 index 6cc333142..000000000 --- a/features/org.eclipse.passage.loc.edit.ui.feature/feature.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - diff --git a/features/org.eclipse.passage.loc.features.feature/.project b/features/org.eclipse.passage.loc.features.feature/.project deleted file mode 100644 index fa8028f04..000000000 --- a/features/org.eclipse.passage.loc.features.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.features.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.features.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.features.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.features.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.features.feature/build.properties b/features/org.eclipse.passage.loc.features.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.features.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.features.feature/feature.properties b/features/org.eclipse.passage.loc.features.feature/feature.properties deleted file mode 100644 index f9f6d53fc..000000000 --- a/features/org.eclipse.passage.loc.features.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Features -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Features -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/features/org.eclipse.passage.loc.features.feature/feature.xml b/features/org.eclipse.passage.loc.features.feature/feature.xml deleted file mode 100644 index a62db23df..000000000 --- a/features/org.eclipse.passage.loc.features.feature/feature.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.licenses.feature/.project b/features/org.eclipse.passage.loc.licenses.feature/.project deleted file mode 100644 index 583621a1a..000000000 --- a/features/org.eclipse.passage.loc.licenses.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.licenses.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.licenses.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.licenses.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.licenses.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.licenses.feature/build.properties b/features/org.eclipse.passage.loc.licenses.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.licenses.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.licenses.feature/feature.properties b/features/org.eclipse.passage.loc.licenses.feature/feature.properties deleted file mode 100644 index 5a62003ea..000000000 --- a/features/org.eclipse.passage.loc.licenses.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Licenses -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Licenses -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/features/org.eclipse.passage.loc.licenses.feature/feature.xml b/features/org.eclipse.passage.loc.licenses.feature/feature.xml deleted file mode 100644 index d0f18b115..000000000 --- a/features/org.eclipse.passage.loc.licenses.feature/feature.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.operator.feature/.project b/features/org.eclipse.passage.loc.operator.feature/.project deleted file mode 100644 index 5d997830b..000000000 --- a/features/org.eclipse.passage.loc.operator.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.operator.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.operator.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.operator.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.operator.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.operator.feature/build.properties b/features/org.eclipse.passage.loc.operator.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.operator.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.operator.feature/feature.properties b/features/org.eclipse.passage.loc.operator.feature/feature.properties deleted file mode 100644 index fba23c687..000000000 --- a/features/org.eclipse.passage.loc.operator.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Operator -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Operator -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/features/org.eclipse.passage.loc.operator.feature/feature.xml b/features/org.eclipse.passage.loc.operator.feature/feature.xml deleted file mode 100644 index 3d576edcc..000000000 --- a/features/org.eclipse.passage.loc.operator.feature/feature.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.products.feature/.project b/features/org.eclipse.passage.loc.products.feature/.project deleted file mode 100644 index 0761e60b9..000000000 --- a/features/org.eclipse.passage.loc.products.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.products.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.products.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.products.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.products.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.products.feature/build.properties b/features/org.eclipse.passage.loc.products.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.products.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.products.feature/feature.properties b/features/org.eclipse.passage.loc.products.feature/feature.properties deleted file mode 100644 index b85dac9aa..000000000 --- a/features/org.eclipse.passage.loc.products.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Products -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Products -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/features/org.eclipse.passage.loc.products.feature/feature.xml b/features/org.eclipse.passage.loc.products.feature/feature.xml deleted file mode 100644 index 0067e9827..000000000 --- a/features/org.eclipse.passage.loc.products.feature/feature.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.users.feature/.project b/features/org.eclipse.passage.loc.users.feature/.project deleted file mode 100644 index aa012a89c..000000000 --- a/features/org.eclipse.passage.loc.users.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.users.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.users.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.users.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.users.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.users.feature/build.properties b/features/org.eclipse.passage.loc.users.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.users.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.users.feature/feature.properties b/features/org.eclipse.passage.loc.users.feature/feature.properties deleted file mode 100644 index 2beddd0a2..000000000 --- a/features/org.eclipse.passage.loc.users.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Users -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Users -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/features/org.eclipse.passage.loc.users.feature/feature.xml b/features/org.eclipse.passage.loc.users.feature/feature.xml deleted file mode 100644 index e7c5e0bbe..000000000 --- a/features/org.eclipse.passage.loc.users.feature/feature.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - diff --git a/features/org.eclipse.passage.loc.workbench.feature/.project b/features/org.eclipse.passage.loc.workbench.feature/.project deleted file mode 100644 index 6bf36fa53..000000000 --- a/features/org.eclipse.passage.loc.workbench.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.workbench.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/features/org.eclipse.passage.loc.workbench.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.passage.loc.workbench.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/features/org.eclipse.passage.loc.workbench.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/features/org.eclipse.passage.loc.workbench.feature/build.properties b/features/org.eclipse.passage.loc.workbench.feature/build.properties deleted file mode 100644 index 6376044a6..000000000 --- a/features/org.eclipse.passage.loc.workbench.feature/build.properties +++ /dev/null @@ -1,15 +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 -############################################################################### - -bin.includes = feature.xml,\ - feature.properties diff --git a/features/org.eclipse.passage.loc.workbench.feature/feature.properties b/features/org.eclipse.passage.loc.workbench.feature/feature.properties deleted file mode 100644 index a219fbb0a..000000000 --- a/features/org.eclipse.passage.loc.workbench.feature/feature.properties +++ /dev/null @@ -1,24 +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 -############################################################################### - -featureName=Passage LOC Workbench -providerName=Eclipse Passage -description=Passage Licensing Operator Components: Workbench -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/features/org.eclipse.passage.loc.workbench.feature/feature.xml b/features/org.eclipse.passage.loc.workbench.feature/feature.xml deleted file mode 100644 index 2103b3171..000000000 --- a/features/org.eclipse.passage.loc.workbench.feature/feature.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - diff --git a/pom.xml b/pom.xml index 3992de9db..c12ecf8fa 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,6 @@ ./releng/org.eclipse.passage.target ./releng/org.eclipse.passage.lic.aggregator - ./releng/org.eclipse.passage.loc.aggregator ./releng/org.eclipse.passage.ldc.aggregator ./releng/org.eclipse.passage.demo.aggregator diff --git a/products/org.eclipse.passage.loc.operator.product/.project b/products/org.eclipse.passage.loc.operator.product/.project deleted file mode 100644 index 690fb648f..000000000 --- a/products/org.eclipse.passage.loc.operator.product/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.passage.loc.operator.product - - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - - diff --git a/products/org.eclipse.passage.loc.operator.product/.settings/org.eclipse.core.resources.prefs b/products/org.eclipse.passage.loc.operator.product/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/products/org.eclipse.passage.loc.operator.product/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/products/org.eclipse.passage.loc.operator.product/common-license.licen b/products/org.eclipse.passage.loc.operator.product/common-license.licen deleted file mode 100644 index bc55d1b86..000000000 --- a/products/org.eclipse.passage.loc.operator.product/common-license.licen +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN PGP MESSAGE----- -Version: BCPG v1.70 - -owJ4nOVWX2gURxi/1NrQQFT6UFsQum4RquVmZ/eSS3LeGUOkJUUh1NY/INi52dm7 -SXdnlpnZXAIVSvFBIYiCULEP7ZMtgn/a9z6UFjG0T7UoCqX4VBRUCu1bsf32bu+S -k6TWKKUg7MHNt9/89vf7ft+3O8f7V+X6en77+t6k/9P6Cz3f36728pqQivn08K3v -yqMzUWhNM6W5FBXbRdi2mKDS56JWscd2j09M2KPb+vvKUtUQoyGPNUMx0ZrUGAo5 -LU3CVilIuJNTJjSbJPR9aybipQ6kl0LCQ4QuQbxi142JS47TaDSQjGoIcJ19uyY6 -Kbo7pVFoZngYu5C2czets4jkudCGCMrau5Yh14XUvp/CZTkO5KS/lLh2gChQBa2W -Vc6CFveZMDzgTFXsETcggVus5geGKM4PsMGR/Aj8zRPXJ8WhoYHhYqFoW1zrhO0g -hoFy7Hl51817w+94uIS90uAwGvbw67iAoSRxSKA6SzGXMVPESIWojCIpDnqo2CYG -1GIl/YSaLmpL6pd0ASnbZFuLbElBnTbqNAm5b0H1S2Y2Zssggt170jxuZsF2Lv3x -UGrm21agZNSlF4Pe9EIYt/UmwDZsJhXyGC53iaQOHQ0tSkyiWBaAEDFG8WpimLYE -iYBis9IKpQvQRcIEYipBROlZLWMonvKlQCGVHfXOw9Gy+nQAPVRYVKZ/2NjqGJia -g9CaJtEdBJ0EAacczFoMExMFkc56JcAwBEtBP1Tc7eXVPfEyO106y86DvpYTzVRX -K0/JukC+ZNsJjVg6AXbG4y24Ye2QLIMvtwe3taopIox+5Hl9dWGuAtYktrK5WlCc -NdAuYmj9wWmzVBKCEhAVE8OrIVtoeCd7/P90HlObxhJTT0tDgbsUVotXnSi/AR7D -V2MmVky35EqNAhLxcLaypWNXy6HHc8t9PLearYzi7Iv11Jr2zf7/2DbvSdgWhBI0 -iNpTa9tKTCs7j3Bug/wjl57N9fTl8Opn0sPh5g3/9gWY63t+XfuISYJVf707derj -67m9a5+7NfXta/e3brmxff1LP5zbePI9+8df3f2f92/6aPrwnPnqzw/OvjF39HK1 -5M39vGZ+zcZPrpz4/dM996ZOv2L/cUee3bC6cPSzU/O9dw+9PC3nL5K3j1waE18Y -fHpr76Evr7r7Nl8fcc/8ch7fP3fzxNoD49fePPPitsGbxz4cfeFvS7yK8Q== -=g+6l ------END PGP MESSAGE----- diff --git a/products/org.eclipse.passage.loc.operator.product/ico/16.png b/products/org.eclipse.passage.loc.operator.product/ico/16.png deleted file mode 100644 index b9926ceb5570d7fd3c6c43053df46cd4c156ddcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmV-f1E&0mP)Iz?vB0B)LpeC^p68xlFU->3_IdSv^Zo4m;`@RB ziI8o7Pgwyr`8Xc7M#k19zPh^8`P;2k8(q0em5LA&7zWOol6EQO{DT4sSlLAp`;LCI z|4R7F7pvU*cvWqUPBID8zu!T%3XqUrXrFTX9B&wgc^dhz;8naFKi1p$!QRg|Z{NLf zvb>_Un1O3Ca&j!Jt$Ya0VPknQ!{855ejSP9FY`2*S@SgV6WsCy^5#cXpSd{Id*HP$ zd5@--J7vd#^YXtOd8bF#7avN$z3JEr1;K|XWW(P!{JGw5Y;Nw{&ZVAVc03kl@M@I6 zlRk`0mR;3tZ1ErF%9&C2wZ4RJb)GE|Pc?F40!jA*q(&wJF0fN@XGYpU1LQk1! zIVyVEAbMkt{%DlWgWmz*4|!O)o!X*cqi|?0m=VrZt0y8805r8W5DfaT=BT7nIu=#I zAM{YOwv@LHz5u{@Bt}7@y;#8l%eqa`Tu${)JW2D8E^6vSbPeq#Sh14p{eNJ~wbIeQ zhwjn+R6JG6p*K%58%vT`pb3>_lI89()2=3>4+l#&eBU#|wnvZ9J>En?p#!_iMkZs> z-rS3-stjF=61^TL5b~fK=8Q^`ueFlty6V!A_Vd3~@=M~lj5OovP#Kh^*IMUQJf jZc6%qqd*vl-JkPc62VtApmtNE00000NkvXXu0mjfN9(F- diff --git a/products/org.eclipse.passage.loc.operator.product/ico/16_8.png b/products/org.eclipse.passage.loc.operator.product/ico/16_8.png deleted file mode 100644 index a4b14e25042f5a16d8934170fa7dd5a1ab21afd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 zcmZ8fYfuwc6u$T_;tTC4RP3_Ff?~1>5p*L71`-fL0t4aIN+l!#VkC*lLP7);MIix2 z5Dd{kP%)?=Rzy%y#7C{Q7N(*yN@rSIsdcn!WzZn#_C_6lxN~;*eD|FDo%?-rjj_Ur zX|A5G0Dx(ctGIFSKhyb684tgHlo{~=xbWqoWFlD*&6KFJsbZ-rT}IVst6?30;1Io9 zEK$e^Bwdy%SF+G&ofl9GmabnVHiX#G>ahAObpZMbW|OKs?ua) zbR5SqS^yRhK!F_;ZJv@4>nTd@S5Aue99)@JqLHf!xk`yRImPL!9D;?Sm~#mBVG5Lo zebfiRM~7reXp08wMj5TPeRAB<*u~B>RPH9mUQeonQv9%oU+Wtdr~}hKnR1}17Hv=>-)XrZkX3* zGVB9|c!c*k@;KNUQSoo-7i1?OE5TfFGK0}bo&d+?sj$;1C?jjY!(x;?23jTGkQT6b zPA^#nyvARI8{d>ovWasbg#7-~J4rJjn*do4#)HoCm?E+a{AE}czvTFnP1q~b*M^WS zlR-Oq1T;%DE2mn>3J~Gf9pceO+5kzC@NDo@P)JTlUBkxn3Yt0A%@{Rt8+iz<$E{Gi zDsZ2cRjcFFXDq5-AG8n3YJS*Gm?M=jaywYg{RT)AJsJJ7iKw8-7mQGLCq{a%yt z5`kMsMn+TS?MU@5x9Pi}8+w+xNN8V2w``7TmMxYI>_rebvKV|---h@xoMBTy>YYLVt2o>`}t6xv90}Ro3;4tSV802YgeB9+R?Kf^1g`Vazyj`Bx&8_ z+H!K*Zb`X3hs8U;KoWnj$6o)3Db$5J^LKUEzF(SuN2-%qK*kE}S{a@{wnXWQKlhIJEo!^%kWOV3F%8FtQ_lG4 z(_{DrM`Ap&%b^>32Nn4lF^?x(Dm;6yq-8(+e(itrZCx+#RazfR*c3jA;XlCBW;&K8 zW%ykEA)MD5khOhpa`dy|ML!Q2cTRaVEEA{2%5O2U{ATz?89y5u9t3#8>eR4PNC?Bf yyVvaXrw4uFLSD)Rf*mBR(H*KDe6X;==i)kWurQqE5LF$9>Omw=$ZZKt+wwmu7AG43 diff --git a/products/org.eclipse.passage.loc.operator.product/ico/32.png b/products/org.eclipse.passage.loc.operator.product/ico/32.png deleted file mode 100644 index 8f2e30bf35d00f5aad84ffecf031e6466bf2992c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2061 zcmV+o2=e!dP)QJTb`(KG#XBe7q8?ZzS%W(ep1HT9U`DFq4F{CZH z#J8|gxn}p;r~g$pW2VaxRcDHEHk|* zmvIGYSZoS)SDM+gwVbpp4~u{PRV+3&mbD^d7$)IvjjmvrYn6>0+k1)Drfwe0OTp01 zRw2ZLz}*;tw|bZ}If%(D{BWyg?A+OZ+%m6d?4?zg&o_~tlf(ZJyW7JATe@j!=)e_k2NR-UJyr*%AR5-_XbaQP8tMZuBE!Rr+ZItc zYc$mt?x0$fSwJy>8ftgpuy<@g0z7b`Z0hT!SMrw?WL)D?rNO4H#n>FN>$dw(r+9zk zG2A`}35gEUvOEZ>Khvty^{o5;-|!~I0ninU@YFA7Ft=nP0Lx!1;zy6YO{7~xvB(>M zy)u@LLSP&KRxa%E)!$AM|~UpoNRqTow$;`G{ybJ@tsO~PhXsrc+h zpH5=3lSo)cjxE0}6QQu@?77{NTX(0;pX0H2Vj^Q2X1{jtTu%ykLUF1+_~9CT!M`r@-k(>1%QdL8kR1Py(>9t zC?uu2ID4X&@}t!N6wJ=%)g2`ycyIq5urU(IwEa6R#XVdb%{NczCad{ogEy-tY zNj_Rw=ghGhRu=!6#1vN_fN_)4*>QF`!Z0xn6I-119)NGJ`52pBK~ZH4-2{+iAk=dN z(yg$|Ru}ZOS`{7LFiFew5Nrvt;_+>qKUvr3$YNK)0K>Sq2qi#OWh^%Jp5V7@+gS6R zom7=IFltOvZ*YK+3Iu?3B2bV~5ufTRs?tpLQGjq*XY_bKb=U8*e9l(pKUcuASD!#p zWOUs?k?$?WmZnZBKCK}>F4o<;x*}Y!3~+c?6>WDz;pgpT+Gi-s=pFw_n}HLn&ciwhHm0db=`BN28+XPAvZIH^f8HK zB%DKHIz5JPIV0efX23am#4njvZI}|>Dz(N!OjW#uPY{M%nX1xE*@tO&dP_PYOYCKEU&7uBs3#SiV=j`zt zRGqG4L`nien3Nx`rmD1_$`f@s6Kr3gRkN@s=I2JTDWp{)DH=afD}7NvyL*$8v-%!iLw z`R&@OW0xn7X$`qY`<=nqL_DC}rJgtBeS+5kCBVCbH--WLa245nhmd4PW6f6{smz;} z`R|R@w{wo3t{FetFqP!Q_;w62?6*NXF}lCUfJu0ue34JHR1E27q>3yw%FfnIs@-2+ zlz6s2_c6DlYX;yOWYG*90}cXz1)A>XeweNTNCZ&C3p7|J;L?iorLR#_L+0IaIg%$DH4H&UxSWJm2%Y?{j`%ZlJ%HmZqU5 z06>fGO=BW&jQU=xfjntv^4bAF`EXgm!eBpNQbZijh8-Cf&an~k;*swFIJ=7C*%7fE zAtsy?&E=D!@s>6S!;K_E+wA>p{o>s@ySd(J0!~nxKPw_FHi8%lxw>dNi%19ok0WGb zM7%xxM3RUMec>e`vAT?dFkc|TSTaOa3u1!(0x|A!0uILB#=$xQztIu1iD-kjCpr@B ztS|&yyaUdbh{M}i+u}*KM3OBY^X-CMG%?PC$S4w%=J`zw$;i-dp)j6=!=5QmT0B0%QH&>KjIcMGGbepCROj{fkGy$H!siA*my(D2CU4FDP- z(3jhN*!Z53+5^=gs>^!y_M2VpUgbHdu;G3Px$o;#@_ewb70uq;Q-X{sngxdgI1h!dS zhAV&vwiPb_Ujs-dwE#W~C`Pv#&GiQ}6FRm9z6KCN#UAD@?hbWtb-)7s2)+!E(MX1OTcdYSpqo~!Ga5{EK@^7qE|GcOl-s91l{<6RyK&z#)c& zZYsN3)fv2@N%i8bkSs+E6gW#QLGtHMpV_9xzrUM|FfJAnr8T0KaBL9`wf}0d{O6F` z!kzW$UZ>uUOcY054m58r47>DhbmC5JcR^VF+u`v@DAyhOcLK2{#i=x&Sc%hnAgg(N zt*m44@o!nQDh@U;5}SWXgD*nPK&p`G9|R^A@wFL_??uW}Mc$Wk2jfC*7QIg)=Eyi+ zh5lAPD`hLj?MLV`T;o&98kK(RV`it+>_L6ASzLhIoJh)JN*}bOKb1^xX;<-eP4 zIV$RlIl<`7=tEv<%TQu%6!+ek`r=n8_S`bCY;0*nSv8%plV85Y?AqD&{FQa`;C_$5 zk0XE1e3DLAq^mlJOQ@fBEw*tma`p7eSV~Qo+)(C(KJQ6*7c;V5@7@LH)ApHnTeQ8# z`mgY`j^rhKDbAMn_tSn94EX2=neX-9ZLE90-0g$uY1VM?8ewi?O}80kJ>k$M9Kf4 z(=u>w>+N$63N&JX{PpHJC^=X$rhyK1K;O}w73_cgFk@zEmTDM{ja*^SlyTlsBXo0* zvHt9Q(vF1Qs_h}#lnxD`4wWv<+OQ72CEKm(#VVien^;iMx<>Su`<= zfY!O!!~yZf&1D}%E|?@15;C1KOQy-d5@B0mXsLB{PU1zqC@t^DdD}v}Wpn(JUi3L1 z@BcaHIp;j@d0~YWk|Hgc#vvzGpc1G6>O0MN- zSe64JC-uNC!r}p3xBh&(&kVojxG-MQ%3}DWk^s;k4@&1^Rf_9C z$cY^|i#ja28c)dsKpUwWbtBs4L8-;4Fs1_w;=e^LG9tb+HTn{wOCFROLGFBEUdHe<J{7x&U0mGl9L}_ zkj$bec5{CXV*Ex>-E5fUx+|DqG4#i^wpg)6!P0bs}=+0Qwma9Yzk1 zKc`J;C@jtuiuaDsGH~V>F7=J!p9#hk=bs7U8M&$YdBa$XL5($>I`W-4mun zs#Qd0z$z$o19@8Gb&qNxv9T=~@(U_V&CAyH&4%`A(-ANpe+jH|=>KjwpN~>(_K3J)m2}`zF+cYj~&FR$aDbb}J zcY^b}fs0_23&o_TbC``~d8$z=t+G*CWy3!cjK*(c#b<_nY~NWF6{>6_;?f0=HYbX* zs;GYT7+dZ7f={^z50XuL$UJt(MIZnLiqNu{k-ox7x z7J2&EMQ(Wf`u?VF;hUaIw41O4X-&97PF#^UebzllB+Al{o-q6{b(vF`ff zc%76<_~!6F`Tivh~1LhaGTfdnv0f;J`;ags+%)kpSU= z1_Y@@S`&u|r_xGVUw^iz1I_GMvdrXf%1ZgQN*o%Lx7JDB%qefY&Fk$89*zR)OnV84-R td0@X%YSDZrwi2F!d-|Ptg%uul{sSGk56R%zB7*<`002ovPDHLkV1gl-&5-~A diff --git a/products/org.eclipse.passage.loc.operator.product/ico/48_8.png b/products/org.eclipse.passage.loc.operator.product/ico/48_8.png deleted file mode 100644 index e6924573ea3f0f3cf9c964ed07ba677f5897dde1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBgK_VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}lpi<;HsXMd|v6mX?%i_Em{HT+OoJ>ghi1An_LI!-=UtmES6@|M!CI`VRzC8D7-y_Q_udHcoPw+}A9T+?;9J#5wcmtU6D?LD#n`oxrtTc(}7ar99v=N@1> zVNfdx@(X52=)XUI|M~X~?;GYj7%1E?NZ20`pdcWy-XS1hy@5kQK|sLy{`H#W%sN0H zU-ooy4DmRAH8iri$w0uxF<{HptgE+v^E?dV>;M1%{47pKVUC)m{%`kem>^lU**!_3 zUhcZ>>22}z)BDvJ=QLVpF8=;(%DMY#tUFsS$D3U+5B753JJUJq#d?!3UuBnGsr#>B zWzjA5zw7V3D099{hyADI3+*zG?NE*njcLx`FT%a@{d3N0Hr2j5U9H(4U)uKD->+iW zyodXc#i3i3&z(QCGuL#px{4Z{WZW6$$>^J(TIU;};SwMw^Cci|{`%bSg=#D}`xbH( zwab5+wfbe;U0B0hWUOU#5SC-UYih~*K~9X$ zCaUkAz*6w`>75W3*Si - - - - - - - - - - -clearPersistedState - - -Dosgi.requiredJavaVersion=11 - - -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/products/org.eclipse.passage.loc.operator.product/pom.xml b/products/org.eclipse.passage.loc.operator.product/pom.xml deleted file mode 100644 index 6ed2909ee..000000000 --- a/products/org.eclipse.passage.loc.operator.product/pom.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - 4.0.0 - - org.eclipse.passage.loc.operator.product - eclipse-repository - - - org.eclipse.passage - org.eclipse.passage.parent - 3.1.0-SNAPSHOT - ../../releng/org.eclipse.passage.parent - - - - - - org.eclipse.tycho - tycho-p2-repository-plugin - ${tycho.version} - - true - - - - org.eclipse.tycho - tycho-p2-director-plugin - ${tycho.version} - - - materialize-products - - materialize-products - - - - archive-products - - archive-products - - - - - - - ${project.artifactId} - ${project.artifactId}-${build.label} - - - - - - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - - org.eclipse.tycho.extras - - - tycho-eclipserun-plugin - - - [1.5.1,) - - - eclipse-run - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/releng/org.eclipse.passage.loc.aggregator/pom.xml b/releng/org.eclipse.passage.loc.aggregator/pom.xml deleted file mode 100644 index 51bc2c7d7..000000000 --- a/releng/org.eclipse.passage.loc.aggregator/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - 4.0.0 - - org.eclipse.passage.loc.aggregator - pom - - - org.eclipse.passage - org.eclipse.passage.parent - 3.1.0-SNAPSHOT - ../../releng/org.eclipse.passage.parent - - - - ../../bundles/org.eclipse.passage.loc.api - ../../bundles/org.eclipse.passage.loc.e4 - ../../bundles/org.eclipse.passage.loc.equinox - ../../bundles/org.eclipse.passage.loc.workbench - ../../bundles/org.eclipse.passage.loc.workbench.emfforms - ../../features/org.eclipse.passage.loc.workbench.feature - ../../tests/org.eclipse.passage.loc.api.tests - ../../tests/org.eclipse.passage.loc.workbench.tests - - ../../bundles/org.eclipse.passage.loc.edit.ui - ../../features/org.eclipse.passage.loc.edit.ui.feature - - ../../bundles/org.eclipse.passage.loc.features.core - ../../bundles/org.eclipse.passage.loc.features.ui - ../../bundles/org.eclipse.passage.loc.features.emfforms - ../../features/org.eclipse.passage.loc.features.feature - ../../tests/org.eclipse.passage.loc.features.core.tests - - ../../bundles/org.eclipse.passage.loc.products.core - ../../bundles/org.eclipse.passage.loc.products.ui - ../../bundles/org.eclipse.passage.loc.products.emfforms - ../../features/org.eclipse.passage.loc.products.feature - - ../../bundles/org.eclipse.passage.loc.licenses.core - ../../bundles/org.eclipse.passage.loc.licenses.ui - ../../bundles/org.eclipse.passage.loc.licenses.emfforms - ../../features/org.eclipse.passage.loc.licenses.feature - - ../../bundles/org.eclipse.passage.loc.users.core - ../../bundles/org.eclipse.passage.loc.users.ui - ../../bundles/org.eclipse.passage.loc.users.emfforms - ../../features/org.eclipse.passage.loc.users.feature - - ../../bundles/org.eclipse.passage.loc.agreements.core - ../../bundles/org.eclipse.passage.loc.agreements.ui - ../../bundles/org.eclipse.passage.loc.agreements.emfforms - ../../features/org.eclipse.passage.loc.agreements.feature - - ../../bundles/org.eclipse.passage.loc.workspace - - ../../bundles/org.eclipse.passage.loc.dashboard.ui - ../../features/org.eclipse.passage.loc.dashboard.feature - - ../../bundles/org.eclipse.passage.loc.operator - ../../bundles/org.eclipse.passage.loc.operator.intro - ../../features/org.eclipse.passage.loc.operator.feature - - ../../bundles/org.eclipse.passage.loc.operator.gear - ../../bundles/org.eclipse.passage.loc.operator.seal - - ../../releng/org.eclipse.passage.loc.repository - - ../../products/org.eclipse.passage.loc.operator.product - - - - \ No newline at end of file diff --git a/releng/org.eclipse.passage.loc.repository/category.xml b/releng/org.eclipse.passage.loc.repository/category.xml deleted file mode 100644 index a7563920c..000000000 --- a/releng/org.eclipse.passage.loc.repository/category.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Passage Licensing Operator Components includes: Dashboard, EMF Forms editors, operator services - - - - - - - - - - - Passage Licensing Operator Components Developer Resources includes: Dashboard, EMF Forms editors, operator services - - - - - - - - - diff --git a/releng/org.eclipse.passage.loc.repository/pom.xml b/releng/org.eclipse.passage.loc.repository/pom.xml deleted file mode 100644 index c5d66389f..000000000 --- a/releng/org.eclipse.passage.loc.repository/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - 4.0.0 - - org.eclipse.passage.loc.repository - eclipse-repository - - - org.eclipse.passage - org.eclipse.passage.parent - 3.1.0-SNAPSHOT - ../../releng/org.eclipse.passage.parent - - - - - - org.eclipse.tycho - tycho-p2-repository-plugin - ${tycho.version} - true - - - package - archive-repository - - archive-repository - - - ${project.artifactId}-${build.label} - - - - - - - - \ No newline at end of file diff --git a/tests/org.eclipse.passage.loc.api.tests/.classpath b/tests/org.eclipse.passage.loc.api.tests/.classpath deleted file mode 100644 index 675a5e296..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.classpath +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/tests/org.eclipse.passage.loc.api.tests/.project b/tests/org.eclipse.passage.loc.api.tests/.project deleted file mode 100644 index 337390fdf..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - org.eclipse.passage.loc.api.tests - - - - - - 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 - - diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 8f9ec5cde..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,101 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 906381876..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,122 +0,0 @@ -cleanup.add_default_serial_version_id=true -cleanup.add_generated_serial_version_id=false -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=false -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=false -cleanup.always_use_this_for_non_static_method_access=false -cleanup.convert_functional_interfaces=false -cleanup.convert_to_enhanced_for_loop=false -cleanup.correct_indentation=false -cleanup.format_source_code=false -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=false -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=false -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=false -cleanup.qualify_static_field_accesses_with_declaring_class=false -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=false -cleanup.remove_private_constructors=true -cleanup.remove_redundant_modifiers=false -cleanup.remove_redundant_semicolons=false -cleanup.remove_redundant_type_arguments=false -cleanup.remove_trailing_whitespaces=false -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=false -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=false -cleanup.use_this_for_non_static_field_access_only_if_necessary=true -cleanup.use_this_for_non_static_method_access=false -cleanup.use_this_for_non_static_method_access_only_if_necessary=true -cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile -cleanup_settings_version=2 -eclipse.preferences.version=1 -editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true -org.eclipse.jdt.ui.text.custom_code_templates= -sp_cleanup.add_default_serial_version_id=true -sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=true -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_methods=false -sp_cleanup.add_missing_nls_tags=false -sp_cleanup.add_missing_override_annotations=true -sp_cleanup.add_missing_override_annotations_interface_methods=true -sp_cleanup.add_serial_version_id=false -sp_cleanup.always_use_blocks=true -sp_cleanup.always_use_parentheses_in_expressions=false -sp_cleanup.always_use_this_for_non_static_field_access=false -sp_cleanup.always_use_this_for_non_static_method_access=false -sp_cleanup.convert_functional_interfaces=false -sp_cleanup.convert_to_enhanced_for_loop=false -sp_cleanup.correct_indentation=false -sp_cleanup.format_source_code=true -sp_cleanup.format_source_code_changes_only=false -sp_cleanup.insert_inferred_type_arguments=false -sp_cleanup.make_local_variable_final=true -sp_cleanup.make_parameters_final=false -sp_cleanup.make_private_fields_final=true -sp_cleanup.make_type_abstract_if_missing_method=false -sp_cleanup.make_variable_declarations_final=false -sp_cleanup.never_use_blocks=false -sp_cleanup.never_use_parentheses_in_expressions=true -sp_cleanup.on_save_use_additional_actions=true -sp_cleanup.organize_imports=true -sp_cleanup.qualify_static_field_accesses_with_declaring_class=false -sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false -sp_cleanup.qualify_static_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_redundant_modifiers=false -sp_cleanup.remove_redundant_semicolons=false -sp_cleanup.remove_redundant_type_arguments=false -sp_cleanup.remove_trailing_whitespaces=false -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_casts=true -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=false -sp_cleanup.remove_unused_local_variables=false -sp_cleanup.remove_unused_private_fields=true -sp_cleanup.remove_unused_private_members=false -sp_cleanup.remove_unused_private_methods=true -sp_cleanup.remove_unused_private_types=true -sp_cleanup.sort_members=false -sp_cleanup.sort_members_all=false -sp_cleanup.use_anonymous_class_creation=false -sp_cleanup.use_blocks=false -sp_cleanup.use_blocks_only_for_return_and_throw=false -sp_cleanup.use_lambda=true -sp_cleanup.use_parentheses_in_expressions=false -sp_cleanup.use_this_for_non_static_field_access=false -sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true -sp_cleanup.use_this_for_non_static_method_access=false -sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs deleted file mode 100644 index 73a356b6d..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs +++ /dev/null @@ -1,8 +0,0 @@ -classpath=true -dsVersion=V1_3 -eclipse.preferences.version=1 -enabled=true -generateBundleActivationPolicyLazy=true -path=OSGI-INF -validationErrorLevel=error -validationErrorLevel.missingImplicitUnbindMethod=error diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs deleted file mode 100644 index 47bd5bdfc..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs +++ /dev/null @@ -1,34 +0,0 @@ -compilers.f.unresolved-features=1 -compilers.f.unresolved-plugins=1 -compilers.incompatible-environment=1 -compilers.p.build=1 -compilers.p.build.bin.includes=1 -compilers.p.build.encodings=2 -compilers.p.build.java.compiler=2 -compilers.p.build.java.compliance=1 -compilers.p.build.missing.output=2 -compilers.p.build.output.library=1 -compilers.p.build.source.library=1 -compilers.p.build.src.includes=1 -compilers.p.deprecated=1 -compilers.p.discouraged-class=1 -compilers.p.internal=1 -compilers.p.missing-packages=2 -compilers.p.missing-version-export-package=2 -compilers.p.missing-version-import-package=2 -compilers.p.missing-version-require-bundle=1 -compilers.p.no-required-att=0 -compilers.p.no.automatic.module=1 -compilers.p.not-externalized-att=0 -compilers.p.service.component.without.lazyactivation=1 -compilers.p.unknown-attribute=1 -compilers.p.unknown-class=1 -compilers.p.unknown-element=1 -compilers.p.unknown-identifier=1 -compilers.p.unknown-resource=1 -compilers.p.unresolved-ex-points=0 -compilers.p.unresolved-import=0 -compilers.s.create-docs=false -compilers.s.doc-folder=doc -compilers.s.open-tags=1 -eclipse.preferences.version=1 diff --git a/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF deleted file mode 100644 index b89e2387c..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.api.tests -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.api.tests -Bundle-Version: 3.1.0.qualifier -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Fragment-Host: org.eclipse.passage.loc.api -Import-Package: org.junit -Bundle-RequiredExecutionEnvironment: JavaSE-17 diff --git a/tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 0f4ed4f88..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,23 +0,0 @@ -#Properties file for org.eclipse.passage.loc.api.tests -############################################################################### -# 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 Tests -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/tests/org.eclipse.passage.loc.api.tests/about.html b/tests/org.eclipse.passage.loc.api.tests/about.html deleted file mode 100644 index 8eee37d47..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/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. -

- - - diff --git a/tests/org.eclipse.passage.loc.api.tests/build.properties b/tests/org.eclipse.passage.loc.api.tests/build.properties deleted file mode 100644 index 44565f399..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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/ diff --git a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ComposedClassMetadataTest.java b/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ComposedClassMetadataTest.java deleted file mode 100644 index b917ae4dd..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ComposedClassMetadataTest.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.api.tests; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - -import java.util.Optional; - -import org.eclipse.passage.lic.api.MandatoryService; -import org.eclipse.passage.loc.internal.api.ClassSupply; -import org.eclipse.passage.loc.internal.api.ComposedClassSupply; -import org.eclipse.passage.loc.internal.api.InstanceSupply; -import org.junit.Test; - -public class ComposedClassMetadataTest { - - private final InstanceSupply metadata = new InstanceSupply() { - - @Override - public Optional supply() { - return Optional.empty(); - } - }; - private final ClassSupply searcher = (c, r) -> Optional.of(metadata); - - @Test(expected = NullPointerException.class) - public void nullConsider() { - new ComposedClassSupply().consider(null); - } - - @Test(expected = NullPointerException.class) - public void nullForget() { - new ComposedClassSupply().forget(null); - } - - @Test - public void positive() { - MandatoryService resolution = null; - ComposedClassSupply composed = new ComposedClassSupply(); - assertFalse(composed.find(getClass(), resolution).isPresent()); - composed.consider(searcher); - assertEquals(metadata, composed.find(getClass(), resolution).get()); - composed.forget(searcher); - assertFalse(composed.find(getClass(), resolution).isPresent()); - } -} diff --git a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java b/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java deleted file mode 100644 index 96bb134d4..000000000 --- a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java +++ /dev/null @@ -1,66 +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.api.tests; - -import static org.junit.Assert.assertEquals; - -import java.util.Arrays; -import java.util.Collections; -import java.util.Optional; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import org.eclipse.passage.loc.internal.api.ZeroOrOne; -import org.junit.Test; - -public class ZeroOneManyTest { - - @Test - public void testZero() throws Exception { - ZeroOrOne zom = new ZeroOrOne<>(() -> Collections.emptyList()); - Optional zero = zom.choose(() -> null, null); - assertEquals(false, zero.isPresent()); - } - - @Test - public void testCreated() throws Exception { - Optional single = Optional.of(new Object()); - ZeroOrOne zom = new ZeroOrOne<>(() -> Collections.emptyList()); - Optional one = zom.choose(() -> single, null); - assertEquals(single, one); - } - - @Test - public void testOne() throws Exception { - Object single = new Object(); - ZeroOrOne zom = new ZeroOrOne<>(() -> Collections.singleton(single)); - Optional one = zom.choose(null, null); - assertEquals(single, one.get()); - } - - @Test - public void testMany() throws Exception { - Object first = new Object(); - Object second = new Object(); - ZeroOrOne zom = new ZeroOrOne<>(() -> Arrays.asList(first, second)); - Optional one = zom.choose(null, source -> select(source, 1)); - assertEquals(second, one.get()); - } - - private Optional select(Iterable source, int index) { - Stream stream = StreamSupport.stream(source.spliterator(), false); - return Optional.of(stream.collect(Collectors.toList()).get(index)); - } - -} diff --git a/tests/org.eclipse.passage.loc.features.core.tests/.classpath b/tests/org.eclipse.passage.loc.features.core.tests/.classpath deleted file mode 100644 index 675a5e296..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/.classpath +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/tests/org.eclipse.passage.loc.features.core.tests/.project b/tests/org.eclipse.passage.loc.features.core.tests/.project deleted file mode 100644 index a592e50aa..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - org.eclipse.passage.loc.features.core.tests - - - - - - 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 - - diff --git a/tests/org.eclipse.passage.loc.features.core.tests/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.passage.loc.features.core.tests/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/tests/org.eclipse.passage.loc.features.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.passage.loc.features.core.tests/META-INF/MANIFEST.MF deleted file mode 100644 index e129f1326..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.features.core.tests -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.features.core.tests -Bundle-Version: 3.1.0.qualifier -Import-Package: org.junit -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Require-Bundle: org.eclipse.passage.loc.features.core;bundle-version="0.5.0" diff --git a/tests/org.eclipse.passage.loc.features.core.tests/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.passage.loc.features.core.tests/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 45cd3f799..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/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: -# Nikifor Fedorov - initial API and implementation -############################################################################### - -Bundle-Name = Passage LOC Features Core Tests -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/tests/org.eclipse.passage.loc.features.core.tests/about.html b/tests/org.eclipse.passage.loc.features.core.tests/about.html deleted file mode 100644 index 8eee37d47..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/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. -

- - - diff --git a/tests/org.eclipse.passage.loc.features.core.tests/build.properties b/tests/org.eclipse.passage.loc.features.core.tests/build.properties deleted file mode 100644 index 5a2276335..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 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: -# Nikifor Fedorov - initial API and implementation -############################################################################### - -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/ diff --git a/tests/org.eclipse.passage.loc.features.core.tests/src/org/eclipse/passage/loc/features/core/tests/ConstantsTest.java b/tests/org.eclipse.passage.loc.features.core.tests/src/org/eclipse/passage/loc/features/core/tests/ConstantsTest.java deleted file mode 100644 index de5864e49..000000000 --- a/tests/org.eclipse.passage.loc.features.core.tests/src/org/eclipse/passage/loc/features/core/tests/ConstantsTest.java +++ /dev/null @@ -1,26 +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: - * Nikifor Fedorov - initial API and implementation - *******************************************************************************/ -package org.eclipse.passage.loc.features.core.tests; - -import static org.junit.Assert.assertNotNull; - -import org.junit.Test; - -public class ConstantsTest { - - @Test - public void forFurtherDevelopment() { - assertNotNull("I'm a newborn test bundle, just let me grow."); - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.classpath b/tests/org.eclipse.passage.loc.workbench.tests/.classpath deleted file mode 100644 index 675a5e296..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.classpath +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.project b/tests/org.eclipse.passage.loc.workbench.tests/.project deleted file mode 100644 index d03c29155..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - org.eclipse.passage.loc.workbench.tests - - - - - - 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 - - diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c020..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 8f9ec5cde..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,101 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 906381876..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,122 +0,0 @@ -cleanup.add_default_serial_version_id=true -cleanup.add_generated_serial_version_id=false -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=false -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=false -cleanup.always_use_this_for_non_static_method_access=false -cleanup.convert_functional_interfaces=false -cleanup.convert_to_enhanced_for_loop=false -cleanup.correct_indentation=false -cleanup.format_source_code=false -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=false -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=false -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=false -cleanup.qualify_static_field_accesses_with_declaring_class=false -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=false -cleanup.remove_private_constructors=true -cleanup.remove_redundant_modifiers=false -cleanup.remove_redundant_semicolons=false -cleanup.remove_redundant_type_arguments=false -cleanup.remove_trailing_whitespaces=false -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=false -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=false -cleanup.use_this_for_non_static_field_access_only_if_necessary=true -cleanup.use_this_for_non_static_method_access=false -cleanup.use_this_for_non_static_method_access_only_if_necessary=true -cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile -cleanup_settings_version=2 -eclipse.preferences.version=1 -editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true -org.eclipse.jdt.ui.text.custom_code_templates= -sp_cleanup.add_default_serial_version_id=true -sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=true -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_methods=false -sp_cleanup.add_missing_nls_tags=false -sp_cleanup.add_missing_override_annotations=true -sp_cleanup.add_missing_override_annotations_interface_methods=true -sp_cleanup.add_serial_version_id=false -sp_cleanup.always_use_blocks=true -sp_cleanup.always_use_parentheses_in_expressions=false -sp_cleanup.always_use_this_for_non_static_field_access=false -sp_cleanup.always_use_this_for_non_static_method_access=false -sp_cleanup.convert_functional_interfaces=false -sp_cleanup.convert_to_enhanced_for_loop=false -sp_cleanup.correct_indentation=false -sp_cleanup.format_source_code=true -sp_cleanup.format_source_code_changes_only=false -sp_cleanup.insert_inferred_type_arguments=false -sp_cleanup.make_local_variable_final=true -sp_cleanup.make_parameters_final=false -sp_cleanup.make_private_fields_final=true -sp_cleanup.make_type_abstract_if_missing_method=false -sp_cleanup.make_variable_declarations_final=false -sp_cleanup.never_use_blocks=false -sp_cleanup.never_use_parentheses_in_expressions=true -sp_cleanup.on_save_use_additional_actions=true -sp_cleanup.organize_imports=true -sp_cleanup.qualify_static_field_accesses_with_declaring_class=false -sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false -sp_cleanup.qualify_static_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_redundant_modifiers=false -sp_cleanup.remove_redundant_semicolons=false -sp_cleanup.remove_redundant_type_arguments=false -sp_cleanup.remove_trailing_whitespaces=false -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_casts=true -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=false -sp_cleanup.remove_unused_local_variables=false -sp_cleanup.remove_unused_private_fields=true -sp_cleanup.remove_unused_private_members=false -sp_cleanup.remove_unused_private_methods=true -sp_cleanup.remove_unused_private_types=true -sp_cleanup.sort_members=false -sp_cleanup.sort_members_all=false -sp_cleanup.use_anonymous_class_creation=false -sp_cleanup.use_blocks=false -sp_cleanup.use_blocks_only_for_return_and_throw=false -sp_cleanup.use_lambda=true -sp_cleanup.use_parentheses_in_expressions=false -sp_cleanup.use_this_for_non_static_field_access=false -sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true -sp_cleanup.use_this_for_non_static_method_access=false -sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.ds.annotations.prefs b/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.ds.annotations.prefs deleted file mode 100644 index 73a356b6d..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.ds.annotations.prefs +++ /dev/null @@ -1,8 +0,0 @@ -classpath=true -dsVersion=V1_3 -eclipse.preferences.version=1 -enabled=true -generateBundleActivationPolicyLazy=true -path=OSGI-INF -validationErrorLevel=error -validationErrorLevel.missingImplicitUnbindMethod=error diff --git a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.prefs deleted file mode 100644 index 47bd5bdfc..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/.settings/org.eclipse.pde.prefs +++ /dev/null @@ -1,34 +0,0 @@ -compilers.f.unresolved-features=1 -compilers.f.unresolved-plugins=1 -compilers.incompatible-environment=1 -compilers.p.build=1 -compilers.p.build.bin.includes=1 -compilers.p.build.encodings=2 -compilers.p.build.java.compiler=2 -compilers.p.build.java.compliance=1 -compilers.p.build.missing.output=2 -compilers.p.build.output.library=1 -compilers.p.build.source.library=1 -compilers.p.build.src.includes=1 -compilers.p.deprecated=1 -compilers.p.discouraged-class=1 -compilers.p.internal=1 -compilers.p.missing-packages=2 -compilers.p.missing-version-export-package=2 -compilers.p.missing-version-import-package=2 -compilers.p.missing-version-require-bundle=1 -compilers.p.no-required-att=0 -compilers.p.no.automatic.module=1 -compilers.p.not-externalized-att=0 -compilers.p.service.component.without.lazyactivation=1 -compilers.p.unknown-attribute=1 -compilers.p.unknown-class=1 -compilers.p.unknown-element=1 -compilers.p.unknown-identifier=1 -compilers.p.unknown-resource=1 -compilers.p.unresolved-ex-points=0 -compilers.p.unresolved-import=0 -compilers.s.create-docs=false -compilers.s.doc-folder=doc -compilers.s.open-tags=1 -eclipse.preferences.version=1 diff --git a/tests/org.eclipse.passage.loc.workbench.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.passage.loc.workbench.tests/META-INF/MANIFEST.MF deleted file mode 100644 index d5cd8028a..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,12 +0,0 @@ -Manifest-Version: 1.0 -Automatic-Module-Name: org.eclipse.passage.loc.workbench.tests -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.passage.loc.workbench.tests -Bundle-Version: 3.1.0.qualifier -Bundle-Name: %Bundle-Name -Bundle-Vendor: %Bundle-Vendor -Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-17 -Fragment-Host: org.eclipse.passage.loc.workbench -Import-Package: org.junit -Require-Bundle: org.eclipse.emf.ecore.edit;bundle-version="0.0.0" diff --git a/tests/org.eclipse.passage.loc.workbench.tests/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.passage.loc.workbench.tests/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index 42f40c427..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/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 Workbench Tests -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/tests/org.eclipse.passage.loc.workbench.tests/about.html b/tests/org.eclipse.passage.loc.workbench.tests/about.html deleted file mode 100644 index 8eee37d47..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/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. -

- - - diff --git a/tests/org.eclipse.passage.loc.workbench.tests/build.properties b/tests/org.eclipse.passage.loc.workbench.tests/build.properties deleted file mode 100644 index 44565f399..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2019, 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/ diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/AppearanceTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/AppearanceTest.java deleted file mode 100644 index 3a9d4b0c5..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/AppearanceTest.java +++ /dev/null @@ -1,53 +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.workbench; - -import static org.junit.Assert.assertEquals; - -import java.util.function.Supplier; - -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.passage.loc.jface.dialogs.Appearance; -import org.eclipse.swt.graphics.Image; -import org.junit.Test; - -public class AppearanceTest { - - private final String title = new String(); - private final Supplier image = () -> null/* sorry, we don't have any graphical facilities in our pipelines */; - private final LabelProvider labels = new LabelProvider(); - - @Test(expected = NullPointerException.class) - public void testNullTitle() { - new Appearance(null, image, labels); - } - - @Test(expected = NullPointerException.class) - public void testNullId() { - new Appearance(title, null, labels); - } - - @Test(expected = NullPointerException.class) - public void testNullLabels() { - new Appearance(title, image, null); - } - - @Test - public void testPositive() { - Appearance appearance = new Appearance(title, image, labels); - assertEquals(title, appearance.title()); - assertEquals(image, appearance.image()); - assertEquals(labels, appearance.labelProvider()); - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContextTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContextTest.java deleted file mode 100644 index 08e121a17..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/MandatoryEclipseContextTest.java +++ /dev/null @@ -1,47 +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.workbench; - -import static org.junit.Assert.assertEquals; - -import java.util.NoSuchElementException; - -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.internal.contexts.EclipseContext; -import org.junit.Test; - -@SuppressWarnings("restriction") -public class MandatoryEclipseContextTest { - - @Test(expected = NullPointerException.class) - public void nullContext() { - new MandatoryEclipseContext(null); - } - - @Test(expected = NoSuchElementException.class) - public void failedResolution() { - IEclipseContext context = new EclipseContext(null); - new MandatoryEclipseContext(context).get(getClass()); - } - - @Test - public void positive() { - IEclipseContext context = new EclipseContext(null); - MandatoryEclipseContext resolution = new MandatoryEclipseContext(context); - assertEquals(context, resolution.get()); - String instance = new String(getClass().getName()); - context.set(String.class, instance); - assertEquals(instance, resolution.get(String.class)); - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/SelectRequestTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/SelectRequestTest.java deleted file mode 100644 index 760b04858..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/SelectRequestTest.java +++ /dev/null @@ -1,60 +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.workbench; - -import static org.junit.Assert.assertEquals; - -import java.util.Collections; -import java.util.function.Supplier; - -import org.eclipse.passage.loc.jface.dialogs.Appearance; -import org.junit.Test; - -public class SelectRequestTest { - - private final Class target = Object.class; - private final String domain = new String(); - private final Supplier> input = () -> Collections.emptyList(); - private final Appearance appearance = new Appearance(domain, - () -> null/* sorry, we don't have any graphical facilities in our pipelines */); - - @Test(expected = NullPointerException.class) - public void testNullTarget() { - new SelectRequest(null, domain, input, appearance); - } - - @Test(expected = NullPointerException.class) - public void testNullDomain() { - new SelectRequest(target, null, input, appearance); - } - - @Test(expected = NullPointerException.class) - public void testNullInput() { - new SelectRequest(target, domain, null, appearance); - } - - @Test(expected = NullPointerException.class) - public void testNullAppearance() { - new SelectRequest(target, domain, input, null); - } - - @Test - public void testPositive() { - SelectRequest request = new SelectRequest(target, domain, input, appearance); - assertEquals(target, request.target()); - assertEquals(domain, request.domain()); - assertEquals(input, request.input()); - assertEquals(appearance, request.appearance()); - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterActionTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterActionTest.java deleted file mode 100644 index 414067f33..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/loc/internal/workbench/registry/UnregisterActionTest.java +++ /dev/null @@ -1,50 +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.workbench.registry; - -import static org.junit.Assert.assertFalse; - -import java.util.function.Supplier; - -import org.eclipse.passage.loc.internal.workbench.LocDomainRegistryAccess; -import org.eclipse.swt.widgets.Shell; -import org.junit.Test; - -public class UnregisterActionTest { - - private final LocDomainRegistryAccess access = new LocDomainRegistryAccess(); - private final Supplier selection = () -> new Object[0]; - private final Supplier shell = () -> null; - - @Test(expected = NullPointerException.class) - public void nullAccess() { - new UnregisterAction(null, selection, shell); - } - - @Test(expected = NullPointerException.class) - public void nullSelection() { - new UnregisterAction(access, null, shell); - } - - @Test(expected = NullPointerException.class) - public void nullShell() { - new UnregisterAction(access, selection, null); - } - - @Test - public void dryRun() { - new UnregisterAction(access, selection, shell).run(); - assertFalse("Nothing to check here ATM".isEmpty()); //$NON-NLS-1$ - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassNameTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassNameTest.java deleted file mode 100644 index 8e27141a6..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassNameTest.java +++ /dev/null @@ -1,43 +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.moveto.lic.emf.edit.tests; - -import static org.junit.Assert.assertEquals; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; -import org.eclipse.passage.moveto.lic.emf.edit.EClassName; -import org.eclipse.passage.moveto.lic.emf.edit.EClassResources; -import org.junit.Test; - -public class EClassNameTest { - - @Test(expected = NullPointerException.class) - public void nullEClass() { - new EClassName((EClass) null); - } - - @Test(expected = NullPointerException.class) - public void nullEClassResources() { - new EClassName((EClassResources) null); - } - - @Test - public void positive() { - EClassResources resources = new EClassResources(EcorePackage.eINSTANCE.getEReference()); - resources.adapterFactory().addAdapterFactory(new EcoreItemProviderAdapterFactory()); - assertEquals("EReference", new EClassName(resources).get()); //$NON-NLS-1$ - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassResourcesTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassResourcesTest.java deleted file mode 100644 index 5b0ef777a..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EClassResourcesTest.java +++ /dev/null @@ -1,44 +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.moveto.lic.emf.edit.tests; - -import static org.junit.Assert.assertEquals; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.emf.ecore.provider.EReferenceItemProvider; -import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; -import org.eclipse.passage.moveto.lic.emf.edit.EClassResources; -import org.junit.Test; - -public class EClassResourcesTest { - - @Test(expected = NullPointerException.class) - public void nullEClass() { - new EClassResources((EClass) null); - } - - @Test(expected = NullPointerException.class) - public void nullEObject() { - new EClassResources((EObject) null); - } - - @Test - public void positive() { - EClassResources resources = new EClassResources(EcorePackage.eINSTANCE.getEReference()); - resources.adapterFactory().addAdapterFactory(new EcoreItemProviderAdapterFactory()); - assertEquals(EReferenceItemProvider.class, resources.get().getClass()); // $NON-NLS-1$ - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectDefaultNameTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectDefaultNameTest.java deleted file mode 100644 index a88302d2d..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectDefaultNameTest.java +++ /dev/null @@ -1,43 +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.moveto.lic.emf.edit.tests; - -import static org.junit.Assert.assertEquals; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; -import org.eclipse.passage.moveto.lic.emf.edit.EClassResources; -import org.eclipse.passage.moveto.lic.emf.edit.EObjectDefaultName; -import org.junit.Test; - -public class EObjectDefaultNameTest { - - @Test(expected = NullPointerException.class) - public void nullEClass() { - new EObjectDefaultName((EClass) null); - } - - @Test(expected = NullPointerException.class) - public void nullEClassResources() { - new EObjectDefaultName((EClassResources) null); - } - - @Test - public void positive() { - EClassResources resources = new EClassResources(EcorePackage.eINSTANCE.getEReference()); - resources.adapterFactory().addAdapterFactory(new EcoreItemProviderAdapterFactory()); - assertEquals("New EReference", new EObjectDefaultName(resources).get()); //$NON-NLS-1$ - } - -} diff --git a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectNameIdentifierTest.java b/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectNameIdentifierTest.java deleted file mode 100644 index ea35f6039..000000000 --- a/tests/org.eclipse.passage.loc.workbench.tests/src/org/eclipse/passage/moveto/lic/emf/edit/tests/EObjectNameIdentifierTest.java +++ /dev/null @@ -1,45 +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.moveto.lic.emf.edit.tests; - -import static org.junit.Assert.assertEquals; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; -import org.eclipse.passage.moveto.lic.emf.edit.EClassResources; -import org.eclipse.passage.moveto.lic.emf.edit.EObjectNameIdentifier; -import org.junit.Test; - -public class EObjectNameIdentifierTest { - - @Test(expected = NullPointerException.class) - public void nullEClass() { - new EObjectNameIdentifier((EClass) null); - } - - @Test(expected = NullPointerException.class) - public void nullEClassResources() { - new EObjectNameIdentifier((EClassResources) null); - } - - @Test - public void positive() { - EClassResources resources = new EClassResources(EcorePackage.eINSTANCE.getEReference()); - resources.adapterFactory().addAdapterFactory(new EcoreItemProviderAdapterFactory()); - EObjectNameIdentifier identifier = new EObjectNameIdentifier(resources); - assertEquals("new.ereference", identifier.apply('.')); //$NON-NLS-1$ - assertEquals("new_ereference", identifier.apply('_')); //$NON-NLS-1$ - } - -}