public code v1

This commit is contained in:
2026-05-22 11:14:29 +02:00
parent 427197ec5a
commit b8141736eb
28859 changed files with 575079 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
+1
View File
@@ -0,0 +1 @@
/bin/
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>afryca.domain.gui</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
@@ -0,0 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: afryca.domain.gui;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: afryca.domain;bundle-version="1.0.0";visibility:=reexport,
org.eclipse.e4.ui.services;bundle-version="1.2.100";visibility:=reexport,
org.eclipse.e4.core.services;bundle-version="2.0.100";visibility:=reexport,
org.jfree.chart.JFreeChart;bundle-version="1.0.0";visibility:=reexport,
org.eclipse.jface;visibility:=reexport
Service-Component: OSGI-INF/domain_gui_service_context_function.xml
Bundle-ActivationPolicy: lazy
Export-Package: afryca.domain.gui.chart,
afryca.domain.gui.dialog,
afryca.domain.gui.service
Automatic-Module-Name: afryca.domain.gui
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="DomainGUIService context function">
<implementation class="afryca.domain.gui.service.provider.DomainGUIServiceContextFunction"/>
<property name="service.context.key" type="String" value="afryca.domain.gui.service.IDomainGUIService"/>
<service>
<provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>
</service>
</scr:component>
@@ -0,0 +1,3 @@
#Properties file for afryca.domain.gui
extension-point.name = Domain_gui
Bundle-Name = Domain gui
@@ -0,0 +1,8 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
OSGI-INF/l10n/bundle.properties,\
OSGI-INF/,\
OSGI-INF/domain_gui_service_context_function.xml
source.. = src/
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension-point id="domain_gui" name="%extension-point.name" schema="schema/domain_gui.exsd"/>
</plugin>
@@ -0,0 +1,129 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="afryca.domain.gui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
<meta.schema plugin="afryca.domain.gui" id="domain_gui" name="Domain_gui"/>
</appinfo>
<documentation>
[Enter description of this extension point.]
</documentation>
</annotation>
<element name="extension">
<annotation>
<appinfo>
<meta.element />
</appinfo>
</annotation>
<complexType>
<choice minOccurs="1" maxOccurs="unbounded">
<element ref="domain_gui" minOccurs="1" maxOccurs="unbounded"/>
</choice>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute translatable="true"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="domain_gui">
<complexType>
<attribute name="id" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="domain" type="string" use="required">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute kind="identifier" basedOn="afryca.domain.domain/domain/@id"/>
</appinfo>
</annotation>
</attribute>
<attribute name="chart" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute kind="java" basedOn="afryca.domain.gui.chart.DomainChart:"/>
</appinfo>
</annotation>
</attribute>
<attribute name="dialog" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute kind="java" basedOn="afryca.domain.gui.dialog.DomainDialog:"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appinfo>
<meta.section type="since"/>
</appinfo>
<documentation>
[Enter the first release in which this extension point appears.]
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="examples"/>
</appinfo>
<documentation>
[Enter extension point usage example here.]
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="apiinfo"/>
</appinfo>
<documentation>
[Enter API information here.]
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="implementation"/>
</appinfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
</schema>
@@ -0,0 +1,40 @@
package afryca.domain.gui.chart;
import org.eclipse.swt.widgets.Composite;
import org.jfree.chart.JFreeChart;
import org.jfree.experimental.chart.swt.ChartComposite;
import afryca.domain.Domain;
public abstract class DomainChart {
protected Domain domain;
protected JFreeChart chart;
protected ChartComposite chartComposite;
public ChartComposite getChartComposite() {
return chartComposite;
}
public void setCharComposite(ChartComposite chartComposite) {
this.chartComposite = chartComposite;
}
public Domain getDomain() {
return domain;
}
public void setDomain(Domain domain) {
this.domain = domain;
refreshChart();
}
public abstract void refreshChart();
public abstract void setSelection(Object selection);
public abstract void initialize(Domain domain, Composite container, int width, int height, int style);
public abstract void displayRanking(Object ranking);
}
@@ -0,0 +1,61 @@
package afryca.domain.gui.definition;
import org.eclipse.core.runtime.IConfigurationElement;
/**
* Registry for the extension point of DomainGUI
*
* @author Sinbad²
* @version 3.0
*/
public class DomainGUIRegistry {
private IConfigurationElement configuration;
/**
* Default builder
*/
private DomainGUIRegistry() {
configuration = null;
}
/**
* Builder
*
* @param element
* Domain configuration element
*/
public DomainGUIRegistry(IConfigurationElement element) {
this();
configuration = element;
}
/**
* Return Domain configuration
*
* @return Domain configuration
*/
public IConfigurationElement getConfiguration() {
return configuration;
}
/**
* Return Domain element value
*
* @param element
* element key
* @return element value
*/
public String getElement(EElements element) {
String result = null;
if (configuration != null) {
result = configuration.getAttribute(element.toString());
}
return result;
}
}
@@ -0,0 +1,17 @@
package afryca.domain.gui.definition;
public enum EElements {
//Id
id,
//Domain
domain,
//Chart which represents the domain
chart,
//Dialog in which the domain is showed
dialog
}
@@ -0,0 +1,73 @@
package afryca.domain.gui.dialog;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.fieldassist.ControlDecoration;
import org.eclipse.jface.fieldassist.FieldDecoration;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import afryca.domain.Domain;
public class DomainDialog extends TitleAreaDialog {
public static final String DOMAINS = "domains"; //$NON-NLS-1$
public static final String DIALOG_CLASS_SHELL = "DialogClassShell"; //$NON-NLS-1$
protected String id;
protected Domain domain;
public DomainDialog() {
super(Display.getCurrent().getActiveShell());
}
@Inject
public DomainDialog(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) {
super(shell);
}
public Domain getDomain() {
return domain;
}
protected ControlDecoration createNotificationDecorator(Text text) {
ControlDecoration controlDecoration = new ControlDecoration(text, SWT.LEFT | SWT.TOP);
FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
controlDecoration.setImage(fieldDecoration.getImage());
validate(controlDecoration, ""); //$NON-NLS-1$
return controlDecoration;
}
protected ControlDecoration createNotificationDecorator(Button button) {
ControlDecoration controlDecoration = new ControlDecoration(button, SWT.LEFT | SWT.TOP);
FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_WARNING);
controlDecoration.setImage(fieldDecoration.getImage());
validate(controlDecoration, ""); //$NON-NLS-1$
return controlDecoration;
}
protected boolean validate(ControlDecoration controlDecoration, String text) {
controlDecoration.setDescriptionText(text);
if(text.isEmpty()) {
controlDecoration.hide();
return true;
} else {
controlDecoration.show();
return false;
}
}
@Override
protected void okPressed() {
super.okPressed();
}
}
@@ -0,0 +1,45 @@
package afryca.domain.gui.service;
import afryca.domain.gui.chart.DomainChart;
import afryca.domain.gui.definition.DomainGUIRegistry;
import afryca.domain.gui.dialog.DomainDialog;
public interface IDomainGUIService {
public static final String CONTEXT = "domainGUI.service.context"; //$NON-NLS-1$
/**
* Return all registers id
*
* @return Registers id
*/
String[] getIds();
/**
* Return a DomainGUIRegistry
*
* @param id
* Id of the DomainGUIRegistry
* @return DomainGUIRegistry
*/
DomainGUIRegistry getRegistry(String id);
/**
* Return a DomainChart
*
* @param id
* Id of the domain
* @return DomainChart
*/
DomainChart createChart(String id);
/**
* Return a DomainDialog
*
* @param id
* Id of the domain
* @return DomainDialog
*/
DomainDialog createDialog(String id);
}
@@ -0,0 +1,19 @@
package afryca.domain.gui.service.provider;
import org.eclipse.e4.core.contexts.ContextFunction;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.model.application.MApplication;
import afryca.domain.gui.service.IDomainGUIService;
public class DomainGUIServiceContextFunction extends ContextFunction {
@Override
public Object compute(IEclipseContext context, String contextKey) {
IDomainGUIService service = ContextInjectionFactory.make(DomainGUIServiceProvider.class, context);
MApplication application = context.get(MApplication.class);
IEclipseContext applicationContext = application.getContext();
applicationContext.set(IDomainGUIService.class, service);
return service;
}
}
@@ -0,0 +1,107 @@
package afryca.domain.gui.service.provider;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.model.application.MApplication;
import afryca.domain.gui.chart.DomainChart;
import afryca.domain.gui.definition.DomainGUIRegistry;
import afryca.domain.gui.definition.EElements;
import afryca.domain.gui.dialog.DomainDialog;
import afryca.domain.gui.service.IDomainGUIService;
public class DomainGUIServiceProvider implements IDomainGUIService {
private static final String EXTENSION_POINT = "afryca.domain.gui.domain_gui"; //$NON-NLS-1$
private Map<String, DomainGUIRegistry> registers;
@Inject
private IEclipseContext context;
@Inject
public DomainGUIServiceProvider() {
registers = new HashMap<>();
}
@PostConstruct
private void initialize() {
loadProviders();
loadRegisters();
setEclipseContext();
}
private void loadProviders() {
// It's not set until @PostConstruct does not end
context.set(IDomainGUIService.class, this);
}
private void loadRegisters() {
IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
IConfigurationElement[] extensionElements = extensionRegistry.getConfigurationElementsFor(EXTENSION_POINT);
Arrays.stream(extensionElements).forEach(this::loadRegistry);
}
private void loadRegistry(IConfigurationElement extensionElement) {
DomainGUIRegistry registry = new DomainGUIRegistry(extensionElement);
registers.put(registry.getElement(EElements.domain), registry);
}
private void setEclipseContext() {
getApplicationContext().set(CONTEXT, context);
}
@Override
public String[] getIds() {
return registers.keySet().toArray(new String[0]);
}
@Override
public DomainGUIRegistry getRegistry(String id) {
return registers.get(id);
}
@Override
public DomainChart createChart(String id) {
DomainGUIRegistry registry = getRegistry(id);
IConfigurationElement chart = registry.getConfiguration();
try {
DomainChart domainChart = (DomainChart) chart.createExecutableExtension(EElements.chart.toString());
return domainChart;
} catch (CoreException e) {
e.printStackTrace();
return null;
}
}
@Override
public DomainDialog createDialog(String id) {
DomainGUIRegistry registry = getRegistry(id);
IConfigurationElement dialog = registry.getConfiguration();
DomainDialog domainDialog = null;
try {
domainDialog = (DomainDialog) dialog.createExecutableExtension(EElements.dialog.toString());
} catch (CoreException e) {
e.printStackTrace();
}
return domainDialog;
}
private IEclipseContext getApplicationContext() {
MApplication application = context.get(MApplication.class);
return application.getContext();
}
}
@@ -0,0 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: afryca.domain.gui;singleton:=true
Bundle-Version: 1.0.0.202101221157
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: afryca.domain;bundle-version="1.0.0";visibility:=reexpor
t,org.eclipse.e4.ui.services;bundle-version="1.2.100";visibility:=reexp
ort,org.eclipse.e4.core.services;bundle-version="2.0.100";visibility:=r
eexport,org.jfree.chart.JFreeChart;bundle-version="1.0.0";visibility:=r
eexport,org.eclipse.jface;visibility:=reexport
Service-Component: OSGI-INF/domain_gui_service_context_function.xml
Bundle-ActivationPolicy: lazy
Export-Package: afryca.domain.gui.chart,afryca.domain.gui.dialog,afryca.
domain.gui.service
Automatic-Module-Name: afryca.domain.gui
@@ -0,0 +1,4 @@
#Fri Jan 22 13:00:59 CET 2021
artifact.main=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.domain.gui\\target\\afryca.domain.gui-1.0.0-SNAPSHOT.jar
artifact.attached.p2artifacts=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.domain.gui\\target\\p2artifacts.xml
artifact.attached.p2metadata=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.domain.gui\\target\\p2content.xml
@@ -0,0 +1,3 @@
artifactId=afryca.domain.gui
groupId=afryca.group
version=1.0.0-SNAPSHOT
@@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<?artifactRepository version='1.1.0'?>
<artifacts size='1'>
<artifact classifier='osgi.bundle' id='afryca.domain.gui' version='1.0.0.202101221157'>
<properties size='5'>
<property name='artifact.size' value='11167'/>
<property name='download.size' value='11167'/>
<property name='maven-groupId' value='afryca.group'/>
<property name='maven-artifactId' value='afryca.domain.gui'/>
<property name='maven-version' value='1.0.0-SNAPSHOT'/>
</properties>
</artifact>
</artifacts>
@@ -0,0 +1,50 @@
<?xml version='1.0' encoding='UTF-8'?>
<units size='1'>
<unit id='afryca.domain.gui' version='1.0.0.202101221157' generation='2'>
<update id='afryca.domain.gui' range='[0.0.0,1.0.0.202101221157)' severity='0'/>
<properties size='5'>
<property name='df_LT.Bundle-Name' value='Domain gui'/>
<property name='org.eclipse.equinox.p2.name' value='%Bundle-Name'/>
<property name='maven-groupId' value='afryca.group'/>
<property name='maven-artifactId' value='afryca.domain.gui'/>
<property name='maven-version' value='1.0.0-SNAPSHOT'/>
</properties>
<provides size='8'>
<provided namespace='org.eclipse.equinox.p2.iu' name='afryca.domain.gui' version='1.0.0.202101221157'/>
<provided namespace='osgi.bundle' name='afryca.domain.gui' version='1.0.0.202101221157'/>
<provided namespace='java.package' name='afryca.domain.gui.chart' version='0.0.0'/>
<provided namespace='java.package' name='afryca.domain.gui.dialog' version='0.0.0'/>
<provided namespace='java.package' name='afryca.domain.gui.service' version='0.0.0'/>
<provided namespace='osgi.identity' name='afryca.domain.gui' version='1.0.0.202101221157'>
<properties size='1'>
<property name='type' value='osgi.bundle'/>
</properties>
</provided>
<provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
<provided namespace='org.eclipse.equinox.p2.localization' name='df_LT' version='1.0.0'/>
</provides>
<requires size='6'>
<required namespace='osgi.bundle' name='afryca.domain' range='1.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.e4.ui.services' range='1.2.100'/>
<required namespace='osgi.bundle' name='org.eclipse.e4.core.services' range='2.0.100'/>
<required namespace='osgi.bundle' name='org.jfree.chart.JFreeChart' range='1.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.jface' range='0.0.0'/>
<requiredProperties namespace='osgi.ee' match='(&amp;(osgi.ee=JavaSE)(version=1.8))'>
<description>
afryca.domain.gui
</description>
</requiredProperties>
</requires>
<artifacts size='1'>
<artifact classifier='osgi.bundle' id='afryca.domain.gui' version='1.0.0.202101221157'/>
</artifacts>
<touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
<touchpointData size='1'>
<instructions size='1'>
<instruction key='manifest'>
Bundle-SymbolicName: afryca.domain.gui;singleton:=true&#xA;Bundle-Version: 1.0.0.202101221157&#xA;
</instruction>
</instructions>
</touchpointData>
</unit>
</units>