Merge branch 'release/2.6.1'
This commit is contained in:
commit
45c23564b5
20
.project
20
.project
|
@ -1,16 +1,22 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<projectDescription>
|
<projectDescription>
|
||||||
<name>scviewer.parent</name>
|
<name>com.minres.scviewer.parent</name>
|
||||||
<comment></comment>
|
<comment></comment>
|
||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
</buildSpec>
|
</buildSpec>
|
||||||
<natures>
|
<natures>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
</natures>
|
</natures>
|
||||||
<filteredResources>
|
<filteredResources>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1591076960924</id>
|
<id>0</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>10</type>
|
<type>10</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
|
@ -19,7 +25,7 @@
|
||||||
</matcher>
|
</matcher>
|
||||||
</filter>
|
</filter>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1591076960932</id>
|
<id>0</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>10</type>
|
<type>10</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
|
@ -28,7 +34,7 @@
|
||||||
</matcher>
|
</matcher>
|
||||||
</filter>
|
</filter>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1591076960936</id>
|
<id>0</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>10</type>
|
<type>10</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
|
@ -37,7 +43,7 @@
|
||||||
</matcher>
|
</matcher>
|
||||||
</filter>
|
</filter>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1591076960939</id>
|
<id>0</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>10</type>
|
<type>10</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
|
@ -46,7 +52,7 @@
|
||||||
</matcher>
|
</matcher>
|
||||||
</filter>
|
</filter>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1591076960950</id>
|
<id>0</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>10</type>
|
<type>10</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
|
@ -55,7 +61,7 @@
|
||||||
</matcher>
|
</matcher>
|
||||||
</filter>
|
</filter>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1591076960954</id>
|
<id>0</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>10</type>
|
<type>10</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
activeProfiles=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
resolveWorkspaceProjects=true
|
||||||
|
version=1
|
|
@ -1,104 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
|
|
||||||
<booleanAttribute key="append.args" value="true"/>
|
|
||||||
<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
|
|
||||||
<booleanAttribute key="askclear" value="false"/>
|
|
||||||
<booleanAttribute key="automaticAdd" value="true"/>
|
|
||||||
<booleanAttribute key="automaticValidate" value="false"/>
|
|
||||||
<stringAttribute key="bootstrap" value=""/>
|
|
||||||
<stringAttribute key="checked" value="[NONE]"/>
|
|
||||||
<booleanAttribute key="clearConfig" value="true"/>
|
|
||||||
<booleanAttribute key="clearws" value="true"/>
|
|
||||||
<booleanAttribute key="clearwslog" value="false"/>
|
|
||||||
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
|
|
||||||
<booleanAttribute key="default" value="true"/>
|
|
||||||
<setAttribute key="deselected_workspace_bundles">
|
|
||||||
<setEntry value="com.minres.scviewer.e4.application"/>
|
|
||||||
<setEntry value="com.minres.scviewer.ui"/>
|
|
||||||
</setAttribute>
|
|
||||||
<booleanAttribute key="includeOptional" value="true"/>
|
|
||||||
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
|
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
|
||||||
<listEntry value="/com.minres.scviewer.database.test"/>
|
|
||||||
</listAttribute>
|
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
|
||||||
<listEntry value="4"/>
|
|
||||||
</listAttribute>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=com.minres.scviewer.database.test"/>
|
|
||||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.minres.scviewer.database.test"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx512m"/>
|
|
||||||
<stringAttribute key="pde.version" value="3.3"/>
|
|
||||||
<stringAttribute key="product" value="com.minres.scviewer.e4.product"/>
|
|
||||||
<booleanAttribute key="run_in_ui_thread" value="true"/>
|
|
||||||
<setAttribute key="selected_target_bundles">
|
|
||||||
<setEntry value="com.google.guava@default:default"/>
|
|
||||||
<setEntry value="javax.annotation@default:default"/>
|
|
||||||
<setEntry value="javax.inject@default:default"/>
|
|
||||||
<setEntry value="javax.servlet@default:default"/>
|
|
||||||
<setEntry value="org.apache.ant@default:default"/>
|
|
||||||
<setEntry value="org.apache.commons.jxpath@default:default"/>
|
|
||||||
<setEntry value="org.apache.felix.gogo.command@default:default"/>
|
|
||||||
<setEntry value="org.apache.felix.gogo.runtime@default:default"/>
|
|
||||||
<setEntry value="org.codehaus.groovy@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.ant.core@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.commands@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.contenttype@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.expressions@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.filesystem.macosx@default:false"/>
|
|
||||||
<setEntry value="org.eclipse.core.filesystem@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.jobs@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.resources@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.core.runtime@default:true"/>
|
|
||||||
<setEntry value="org.eclipse.core.variables@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.core.contexts@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.core.di.annotations@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.core.di.extensions@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.core.di@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.core.services@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.emf.xpath@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.ui.di@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.ui.model.workbench@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.e4.ui.services@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.emf.common@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.emf.ecore@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.app@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.bidi@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.common@2:true"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.ds@1:true"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.preferences@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.registry@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.equinox.util@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.jface@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.osgi.compatibility.state@default:false"/>
|
|
||||||
<setEntry value="org.eclipse.osgi.services@default:default"/>
|
|
||||||
<setEntry value="org.eclipse.osgi@-1:true"/>
|
|
||||||
<setEntry value="org.eclipse.swt.cocoa.macosx.x86_64@default:false"/>
|
|
||||||
<setEntry value="org.eclipse.swt@default:default"/>
|
|
||||||
<setEntry value="org.hamcrest.core@default:default"/>
|
|
||||||
<setEntry value="org.junit@default:default"/>
|
|
||||||
</setAttribute>
|
|
||||||
<setAttribute key="selected_workspace_bundles">
|
|
||||||
<setEntry value="com.minres.scviewer.database.sqlite@default:true"/>
|
|
||||||
<setEntry value="com.minres.scviewer.database.test@default:default"/>
|
|
||||||
<setEntry value="com.minres.scviewer.database.text@default:true"/>
|
|
||||||
<setEntry value="com.minres.scviewer.database.ui.swt@default:default"/>
|
|
||||||
<setEntry value="com.minres.scviewer.database.ui@default:default"/>
|
|
||||||
<setEntry value="com.minres.scviewer.database.vcd@default:default"/>
|
|
||||||
<setEntry value="com.minres.scviewer.database@default:true"/>
|
|
||||||
<setEntry value="com.opcoach.e4.preferences@default:default"/>
|
|
||||||
</setAttribute>
|
|
||||||
<booleanAttribute key="show_selected_only" value="false"/>
|
|
||||||
<booleanAttribute key="tracing" value="false"/>
|
|
||||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
|
||||||
<booleanAttribute key="useDefaultConfig" value="true"/>
|
|
||||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
|
||||||
<booleanAttribute key="useProduct" value="false"/>
|
|
||||||
</launchConfiguration>
|
|
|
@ -10,7 +10,7 @@
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>com.minres.scviewer.e4.product</artifactId>
|
<artifactId>com.minres.scviewer.e4.product</artifactId>
|
||||||
<version>2.6.0-SNAPSHOT</version>
|
<version>2.6.1-SNAPSHOT</version>
|
||||||
<packaging>eclipse-repository</packaging>
|
<packaging>eclipse-repository</packaging>
|
||||||
<groupId>com.minres.scviewer</groupId>
|
<groupId>com.minres.scviewer</groupId>
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<?pde version="3.5"?>
|
<?pde version="3.5"?>
|
||||||
|
|
||||||
<product name="SCViewer" uid="scviewer" id="com.minres.scviewer.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.6.0.qualifier" useFeatures="true" includeLaunchers="true">
|
<product name="SCViewer" uid="scviewer" id="com.minres.scviewer.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.6.1.qualifier" useFeatures="true" includeLaunchers="true">
|
||||||
|
|
||||||
|
|
||||||
<configIni use="default">
|
<configIni use="default">
|
||||||
</configIni>
|
</configIni>
|
||||||
|
@ -35,7 +34,6 @@
|
||||||
</win>
|
</win>
|
||||||
</launcher>
|
</launcher>
|
||||||
|
|
||||||
|
|
||||||
<vm>
|
<vm>
|
||||||
<linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
|
<linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
|
||||||
<macos include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</macos>
|
<macos include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</macos>
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
|
|
||||||
<features>
|
<features>
|
||||||
<feature id="com.minres.scviewer.e4.feature" installMode="root"/>
|
<feature id="com.minres.scviewer.e4.feature" installMode="root"/>
|
||||||
|
<feature id="com.minres.scviewer.e4.platform.feature" installMode="root"/>
|
||||||
</features>
|
</features>
|
||||||
|
|
||||||
<configurations>
|
<configurations>
|
||||||
|
|
|
@ -8,8 +8,9 @@
|
||||||
<unit id="org.eclipse.equinox.p2.sdk.feature.jar" version="0.0.0"/> <!-- needed by Linux exectable-->
|
<unit id="org.eclipse.equinox.p2.sdk.feature.jar" version="0.0.0"/> <!-- needed by Linux exectable-->
|
||||||
<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
|
<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
|
||||||
<unit id="org.eclipse.platform.sdk" version="0.0.0"/>
|
<unit id="org.eclipse.platform.sdk" version="0.0.0"/>
|
||||||
<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/> <!-- org.junit for testing -->
|
<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/> <!-- org.eclipse.equinox.p2.iu -->
|
||||||
<unit id="org.eclipse.rcptt.core.feature.group" version="0.0.0"/><!-- com.google.guave-->
|
<unit id="org.eclipse.rcptt.core.feature.group" version="0.0.0"/><!-- com.google.guave-->
|
||||||
|
<unit id="org.eclipse.pde.feature.group" version="0.0.0"/> <!-- org.junit for testing -->
|
||||||
</location>
|
</location>
|
||||||
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
|
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
|
||||||
<repository location="https://www.opcoach.com/repository/2020-03/"/>
|
<repository location="https://www.opcoach.com/repository/2020-03/"/>
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
activeProfiles=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
resolveWorkspaceProjects=true
|
||||||
|
version=1
|
|
@ -71,4 +71,11 @@
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="com.opcoach.e4.preferences"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
</feature>
|
</feature>
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
/target/
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>com.minres.scviewer.e4.platform.feature</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.FeatureBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.pde.FeatureNature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1 @@
|
||||||
|
bin.includes = feature.xml
|
|
@ -0,0 +1,72 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<feature
|
||||||
|
id="com.minres.scviewer.e4.platform.feature"
|
||||||
|
label="SCViewer Platform Feature"
|
||||||
|
version="1.0.0.qualifier"
|
||||||
|
provider-name="MINRES Technologies GmbH">
|
||||||
|
|
||||||
|
<description url="http://www.example.com/description">
|
||||||
|
[Enter Feature Description here.]
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<copyright url="http://www.example.com/copyright">
|
||||||
|
[Enter Copyright Description here.]
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<license url="http://www.example.com/license">
|
||||||
|
[Enter License Description here.]
|
||||||
|
</license>
|
||||||
|
|
||||||
|
<includes
|
||||||
|
id="org.eclipse.e4.rcp"
|
||||||
|
version="0.0.0"/>
|
||||||
|
|
||||||
|
<includes
|
||||||
|
id="org.eclipse.emf.ecore"
|
||||||
|
version="0.0.0"/>
|
||||||
|
|
||||||
|
<includes
|
||||||
|
id="org.eclipse.emf.common"
|
||||||
|
version="0.0.0"/>
|
||||||
|
|
||||||
|
<requires>
|
||||||
|
<import plugin="org.eclipse.core.expressions" version="3.2.0" match="compatible"/>
|
||||||
|
<import plugin="org.eclipse.core.filesystem" version="1.3.0" match="compatible"/>
|
||||||
|
<import plugin="org.eclipse.core.runtime" version="3.12.0" match="compatible"/>
|
||||||
|
</requires>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.core.resources"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.core.filesystem"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.core.filesystem.linux.x86_64"
|
||||||
|
os="linux"
|
||||||
|
arch="x86_64"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
fragment="true"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.core.filesystem.win32.x86_64"
|
||||||
|
os="win32"
|
||||||
|
arch="x86_64"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
fragment="true"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
</feature>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>com.minres.scviewer.e4.platform.feature</artifactId>
|
||||||
|
<packaging>eclipse-feature</packaging>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.minres.scviewer</groupId>
|
||||||
|
<artifactId>com.minres.scviewer.parent</artifactId>
|
||||||
|
<version>2.0.0-SNAPSHOT</version>
|
||||||
|
<relativePath>../..</relativePath>
|
||||||
|
</parent>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</project>
|
|
@ -16,7 +16,6 @@ import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.graphics.Color;
|
import org.eclipse.swt.graphics.Color;
|
||||||
import org.eclipse.swt.graphics.GC;
|
|
||||||
import org.eclipse.swt.graphics.Path;
|
import org.eclipse.swt.graphics.Path;
|
||||||
import org.eclipse.swt.graphics.Point;
|
import org.eclipse.swt.graphics.Point;
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
import org.eclipse.swt.graphics.Rectangle;
|
||||||
|
@ -89,9 +88,8 @@ public class ArrowPainter implements IPainter {
|
||||||
deferredUpdate = true;
|
deferredUpdate = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
selectionOffset = waveCanvas.getXOffset();
|
|
||||||
int laneHeight = painter.getHeight() / stream.getMaxConcurrency();
|
int laneHeight = painter.getHeight() / stream.getMaxConcurrency();
|
||||||
txRectangle = new Rectangle((int) (tx.getBeginTime() / scaleFactor-waveCanvas.getXOffset()),
|
txRectangle = new Rectangle((int) (tx.getBeginTime() / scaleFactor),
|
||||||
waveCanvas.rulerHeight + painter.getVerticalOffset() + laneHeight * tx.getConcurrencyIndex(),
|
waveCanvas.rulerHeight + painter.getVerticalOffset() + laneHeight * tx.getConcurrencyIndex(),
|
||||||
(int) ((tx.getEndTime() - tx.getBeginTime()) / scaleFactor), laneHeight);
|
(int) ((tx.getEndTime() - tx.getBeginTime()) / scaleFactor), laneHeight);
|
||||||
deriveGeom(tx.getIncomingRelations(), iRect, false);
|
deriveGeom(tx.getIncomingRelations(), iRect, false);
|
||||||
|
@ -105,7 +103,7 @@ public class ArrowPainter implements IPainter {
|
||||||
ITxStream<?> stream = otherTx.getStream();
|
ITxStream<?> stream = otherTx.getStream();
|
||||||
IWaveformPainter painter = waveCanvas.wave2painterMap.get(stream);
|
IWaveformPainter painter = waveCanvas.wave2painterMap.get(stream);
|
||||||
int laneHeight = painter.getHeight() / stream.getMaxConcurrency();
|
int laneHeight = painter.getHeight() / stream.getMaxConcurrency();
|
||||||
Rectangle bb = new Rectangle((int) (otherTx.getBeginTime() / scaleFactor-waveCanvas.getXOffset()),
|
Rectangle bb = new Rectangle((int) (otherTx.getBeginTime() / scaleFactor),
|
||||||
waveCanvas.rulerHeight + painter.getVerticalOffset()
|
waveCanvas.rulerHeight + painter.getVerticalOffset()
|
||||||
+ laneHeight * otherTx.getConcurrencyIndex(),
|
+ laneHeight * otherTx.getConcurrencyIndex(),
|
||||||
(int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor), laneHeight);
|
(int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor), laneHeight);
|
||||||
|
@ -115,7 +113,7 @@ public class ArrowPainter implements IPainter {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void paintArea(GC gc, Rectangle area) {
|
public void paintArea(Projection proj, Rectangle clientRect) {
|
||||||
Color fgColor = waveCanvas.colors[WaveformColors.REL_ARROW.ordinal()];
|
Color fgColor = waveCanvas.colors[WaveformColors.REL_ARROW.ordinal()];
|
||||||
Color highliteColor = waveCanvas.colors[WaveformColors.REL_ARROW_HIGHLITE.ordinal()];
|
Color highliteColor = waveCanvas.colors[WaveformColors.REL_ARROW_HIGHLITE.ordinal()];
|
||||||
|
|
||||||
|
@ -124,33 +122,30 @@ public class ArrowPainter implements IPainter {
|
||||||
calculateGeometries();
|
calculateGeometries();
|
||||||
}
|
}
|
||||||
if(txRectangle == null) return;
|
if(txRectangle == null) return;
|
||||||
int correctionValue = (int)(selectionOffset - waveCanvas.getXOffset());
|
int correctionValue = (int)(selectionOffset);
|
||||||
Rectangle correctedTargetRectangle = new Rectangle(txRectangle.x+correctionValue, txRectangle.y, txRectangle.width, txRectangle.height);
|
Rectangle correctedTargetRectangle = new Rectangle(txRectangle.x+correctionValue, txRectangle.y, txRectangle.width, txRectangle.height);
|
||||||
for (LinkEntry entry : iRect) {
|
for (LinkEntry entry : iRect) {
|
||||||
Rectangle correctedRectangle = new Rectangle(entry.rectangle.x+correctionValue, entry.rectangle.y, entry.rectangle.width, entry.rectangle.height);
|
Rectangle correctedRectangle = new Rectangle(entry.rectangle.x+correctionValue, entry.rectangle.y, entry.rectangle.width, entry.rectangle.height);
|
||||||
Point target = drawPath(gc, highlightType.equals(entry.relationType) ? highliteColor : fgColor,
|
Point target = drawPath(proj, highlightType.equals(entry.relationType) ? highliteColor : fgColor,
|
||||||
correctedRectangle, correctedTargetRectangle);
|
correctedRectangle, correctedTargetRectangle);
|
||||||
drawArrow(gc, target);
|
drawArrow(proj, target);
|
||||||
}
|
}
|
||||||
for (LinkEntry entry : oRect) {
|
for (LinkEntry entry : oRect) {
|
||||||
Rectangle correctedRectangle = new Rectangle(entry.rectangle.x+correctionValue, entry.rectangle.y, entry.rectangle.width, entry.rectangle.height);
|
Rectangle correctedRectangle = new Rectangle(entry.rectangle.x+correctionValue, entry.rectangle.y, entry.rectangle.width, entry.rectangle.height);
|
||||||
Point target = drawPath(gc, highlightType.equals(entry.relationType) ? highliteColor : fgColor, correctedTargetRectangle,
|
Point target = drawPath(proj, highlightType.equals(entry.relationType) ? highliteColor : fgColor, correctedTargetRectangle,
|
||||||
correctedRectangle);
|
correctedRectangle);
|
||||||
drawArrow(gc, target);
|
drawArrow(proj, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void drawArrow(GC gc, Point target) {
|
protected void drawArrow(Projection proj, Point target) {
|
||||||
gc.drawLine(target.x - 8, target.y - 5, target.x, target.y);
|
proj.drawLine(target.x - 8, target.y - 5, target.x, target.y);
|
||||||
gc.drawLine(target.x - 8, target.y + 5, target.x, target.y);
|
proj.drawLine(target.x - 8, target.y + 5, target.x, target.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Point drawPath(GC gc, Color fgColor, Rectangle srcRectangle, Rectangle tgtRectangle) {
|
protected Point drawPath(Projection proj, Color fgColor, Rectangle srcRectangle, Rectangle tgtRectangle) {
|
||||||
Point point1 = new Point(0, srcRectangle.y + srcRectangle.height / 2);
|
Point point1 = proj.project(new Point(srcRectangle.x, srcRectangle.y + srcRectangle.height / 2));
|
||||||
Point point2 = new Point(0, tgtRectangle.y + tgtRectangle.height / 2);
|
Point point2 = proj.project(new Point(tgtRectangle.x, tgtRectangle.y + tgtRectangle.height / 2));
|
||||||
|
|
||||||
point1.x = srcRectangle.x;
|
|
||||||
point2.x = tgtRectangle.x;
|
|
||||||
|
|
||||||
if (point2.x > point1.x + srcRectangle.width)
|
if (point2.x > point1.x + srcRectangle.width)
|
||||||
point1.x += srcRectangle.width;
|
point1.x += srcRectangle.width;
|
||||||
|
@ -165,9 +160,9 @@ public class ArrowPainter implements IPainter {
|
||||||
path.cubicTo(center.x + xCtrlOffset, center.y, point2.x - xCtrlOffset, point2.y, point2.x, point2.y);
|
path.cubicTo(center.x + xCtrlOffset, center.y, point2.x - xCtrlOffset, point2.y, point2.x, point2.y);
|
||||||
} else
|
} else
|
||||||
path.cubicTo(point1.x + xCtrlOffset, point1.y, point2.x - xCtrlOffset, point2.y, point2.x, point2.y);
|
path.cubicTo(point1.x + xCtrlOffset, point1.y, point2.x - xCtrlOffset, point2.y, point2.x, point2.y);
|
||||||
gc.setAntialias(SWT.ON);
|
proj.setAntialias(SWT.ON);
|
||||||
gc.setForeground(fgColor);
|
proj.setForeground(fgColor);
|
||||||
gc.drawPath(path);
|
proj.getGC().drawPath(path);
|
||||||
path.dispose();
|
path.dispose();
|
||||||
return point2;
|
return point2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
package com.minres.scviewer.database.swt.internal;
|
package com.minres.scviewer.database.swt.internal;
|
||||||
|
|
||||||
import org.eclipse.swt.graphics.Color;
|
import org.eclipse.swt.graphics.Color;
|
||||||
import org.eclipse.swt.graphics.GC;
|
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
import org.eclipse.swt.graphics.Rectangle;
|
||||||
|
|
||||||
import com.minres.scviewer.database.ui.ICursor;
|
import com.minres.scviewer.database.ui.ICursor;
|
||||||
|
@ -62,30 +61,30 @@ public class CursorPainter implements IPainter, ICursor {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void paintArea(GC gc, Rectangle area) {
|
public void paintArea(Projection proj, Rectangle clientRect) {
|
||||||
|
Rectangle area = proj.unProject(clientRect);
|
||||||
if(this.waveCanvas.painterList.size()>0){
|
if(this.waveCanvas.painterList.size()>0){
|
||||||
|
|
||||||
long scaleFactor=waveCanvas.getScaleFactor();
|
long scaleFactor=waveCanvas.getScaleFactor();
|
||||||
long beginPos = area.x;
|
long beginPos = area.x;
|
||||||
|
|
||||||
maxPosX = area.x + area.width;
|
maxPosX = area.x + area.width;
|
||||||
maxValX = maxPosX + (int)waveCanvas.getXOffset();
|
maxValX = maxPosX;
|
||||||
|
|
||||||
// x position of marker in pixels on canvas
|
// x position of marker in pixels on canvas
|
||||||
int x = (int) (time/scaleFactor);
|
int x = (int) (time/scaleFactor);
|
||||||
// distance of marker from the top of Canvas' painting area
|
// distance of marker from the top of Canvas' painting area
|
||||||
int top = id<0?area.y:area.y+15;
|
int top = id<0?area.y:area.y+15;
|
||||||
|
|
||||||
Color drawColor=waveCanvas.colors[id<0?WaveformColors.CURSOR.ordinal():WaveformColors.MARKER.ordinal()];
|
Color drawColor=waveCanvas.colors[id<0?WaveformColors.CURSOR.ordinal():WaveformColors.MARKER.ordinal()];
|
||||||
Color dragColor = waveCanvas.colors[WaveformColors.CURSOR_DRAG.ordinal()];
|
Color dragColor = waveCanvas.colors[WaveformColors.CURSOR_DRAG.ordinal()];
|
||||||
Color textColor=waveCanvas.colors[id<0?WaveformColors.CURSOR_TEXT.ordinal():WaveformColors.MARKER_TEXT.ordinal()];
|
Color textColor=waveCanvas.colors[id<0?WaveformColors.CURSOR_TEXT.ordinal():WaveformColors.MARKER_TEXT.ordinal()];
|
||||||
if(x>=beginPos && x<=maxValX){
|
if(x>=beginPos && x<=maxValX){
|
||||||
gc.setForeground(isDragging?dragColor:drawColor);
|
proj.setForeground(isDragging?dragColor:drawColor);
|
||||||
gc.drawLine(x-(int)waveCanvas.getXOffset(), top, x-(int)waveCanvas.getXOffset(), area.y+area.height);
|
proj.drawLine(x, top, x, area.y+area.height);
|
||||||
gc.setBackground(drawColor);
|
proj.setBackground(drawColor);
|
||||||
gc.setForeground(textColor);
|
proj.setForeground(textColor);
|
||||||
Double dTime=new Double(time);
|
Double dTime=new Double(time);
|
||||||
gc.drawText((dTime/waveCanvas.getScaleFactorPow10())+waveCanvas.getUnitStr(), x+1-(int)waveCanvas.getXOffset(), top);
|
proj.drawText((dTime/waveCanvas.getScaleFactorPow10())+waveCanvas.getUnitStr(), x+1, top);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,11 +10,10 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package com.minres.scviewer.database.swt.internal;
|
package com.minres.scviewer.database.swt.internal;
|
||||||
|
|
||||||
import org.eclipse.swt.graphics.GC;
|
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
import org.eclipse.swt.graphics.Rectangle;
|
||||||
|
|
||||||
public interface IPainter {
|
public interface IPainter {
|
||||||
|
|
||||||
void paintArea(GC gc,Rectangle area);
|
void paintArea(Projection gc, Rectangle area);
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,122 @@
|
||||||
|
package com.minres.scviewer.database.swt.internal;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import org.eclipse.swt.graphics.Color;
|
||||||
|
import org.eclipse.swt.graphics.GC;
|
||||||
|
import org.eclipse.swt.graphics.Point;
|
||||||
|
import org.eclipse.swt.graphics.Rectangle;
|
||||||
|
|
||||||
|
public class Projection {
|
||||||
|
|
||||||
|
private Point translation;
|
||||||
|
private GC gc;
|
||||||
|
|
||||||
|
public Projection(GC gc) {
|
||||||
|
super();
|
||||||
|
this.gc = gc;
|
||||||
|
translation=new Point(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setTranslation(Point t) {
|
||||||
|
translation = t;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setGC(GC gc) {
|
||||||
|
this.gc=gc;
|
||||||
|
}
|
||||||
|
|
||||||
|
Point getTranslation() {
|
||||||
|
return translation;
|
||||||
|
}
|
||||||
|
|
||||||
|
Point project(Point p) {
|
||||||
|
return new Point(p.x+translation.x, p.y+translation.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Rectangle unProject(Rectangle r) {
|
||||||
|
return new Rectangle(r.x-translation.x, r.y-translation.y, r.width, r.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBackground(Color color) {
|
||||||
|
gc.setBackground(color);
|
||||||
|
}
|
||||||
|
public void setFillRule(int rule) {
|
||||||
|
gc.setFillRule(rule);
|
||||||
|
}
|
||||||
|
public void fillRectangle(Rectangle rect) {
|
||||||
|
gc.fillRectangle(rect.x+translation.x, rect.y+translation.y, rect.width, rect.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLineStyle(int style) {
|
||||||
|
gc.setLineStyle(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLineWidth(int width) {
|
||||||
|
gc.setLineWidth(width);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setForeground(Color color) {
|
||||||
|
gc.setForeground(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawLine(int x1, int y1, int x2, int y2) {
|
||||||
|
gc.drawLine(x1+translation.x, y1+translation.y, x2+translation.x, y2+translation.y);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public GC getGC() {
|
||||||
|
return gc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawRectangle(Rectangle rect) {
|
||||||
|
gc.drawRectangle(rect.x+translation.y, rect.y+translation.y, rect.width, rect.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fillRoundRectangle(int x, int y, int width, int height, int arcWidth, int arcHeight) {
|
||||||
|
gc.fillRoundRectangle(x+translation.x, y+translation.y, width, height, arcWidth, arcHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawRoundRectangle(int x, int y, int width, int height, int arcWidth, int arcHeight) {
|
||||||
|
gc.drawRoundRectangle(x+translation.x, y+translation.y, width, height, arcWidth, arcHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAntialias(int antialias) {
|
||||||
|
gc.setAntialias(antialias);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawText(String string, int x, int y) {
|
||||||
|
gc.drawText(string, x+translation.x, y+translation.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int[] project(int[] points) {
|
||||||
|
int[] res = Arrays.copyOf(points, points.length);
|
||||||
|
for(int i=0; i<points.length; i+=2) {
|
||||||
|
res[i]=points[i]+translation.x;
|
||||||
|
res[i+1]=points[i+1]+translation.y;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fillPolygon(int[] points) {
|
||||||
|
gc.fillPolygon(project(points));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawPolygon(int[] points) {
|
||||||
|
gc.drawPolygon(project(points));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Rectangle getClipping() {
|
||||||
|
Rectangle c = gc.getClipping();
|
||||||
|
return new Rectangle(c.x-translation.x, c.y-translation.y, c.width, c.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClipping(int x, int y, int width, int height) {
|
||||||
|
gc.setClipping(x+translation.x, y+translation.y, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClipping(Rectangle r) {
|
||||||
|
gc.setClipping(r.x+translation.x, r.y+translation.y, r.width, r.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -31,8 +31,8 @@ public class RulerPainter implements IPainter {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void paintArea(GC gc, Rectangle area) {
|
public void paintArea(Projection proj, Rectangle area) {
|
||||||
|
GC gc = proj.getGC();
|
||||||
Color headerFgColor=waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
|
Color headerFgColor=waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
|
||||||
if(headerFgColor.isDisposed())
|
if(headerFgColor.isDisposed())
|
||||||
headerFgColor=SWTResourceManager.getColor(0,0,0);
|
headerFgColor=SWTResourceManager.getColor(0,0,0);
|
||||||
|
@ -44,7 +44,7 @@ public class RulerPainter implements IPainter {
|
||||||
long scaleFactor=waveCanvas.getScaleFactor();
|
long scaleFactor=waveCanvas.getScaleFactor();
|
||||||
|
|
||||||
long startPos=area.x*scaleFactor;
|
long startPos=area.x*scaleFactor;
|
||||||
long startVal=startPos + waveCanvas.getXOffset()*scaleFactor;
|
long startVal=startPos - proj.getTranslation().x*scaleFactor;
|
||||||
long endPos=startPos+area.width*scaleFactor;
|
long endPos=startPos+area.width*scaleFactor;
|
||||||
|
|
||||||
long rulerTickMinor = rulerTickMinorC*scaleFactor;
|
long rulerTickMinor = rulerTickMinorC*scaleFactor;
|
||||||
|
|
|
@ -79,22 +79,22 @@ public class SignalPainter extends TrackPainter {
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getXPosEnd(long time) {
|
private int getXPosEnd(long time) {
|
||||||
long ltmp = time / this.waveCanvas.getScaleFactor() - waveCanvas.getXOffset();
|
long ltmp = time / this.waveCanvas.getScaleFactor();
|
||||||
return ltmp > maxPosX ? maxPosX : (int) ltmp;
|
return ltmp > maxPosX ? maxPosX : (int) ltmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void paintArea(GC gc, Rectangle area) {
|
public void paintArea(Projection proj, Rectangle area) {
|
||||||
ISignal<?> signal = trackEntry.getSignal();
|
ISignal<?> signal = trackEntry.getSignal();
|
||||||
if (trackEntry.selected)
|
if (trackEntry.selected)
|
||||||
gc.setBackground(this.waveCanvas.colors[WaveformColors.TRACK_BG_HIGHLITE.ordinal()]);
|
proj.setBackground(this.waveCanvas.colors[WaveformColors.TRACK_BG_HIGHLITE.ordinal()]);
|
||||||
else
|
else
|
||||||
gc.setBackground(this.waveCanvas.colors[even ? WaveformColors.TRACK_BG_EVEN.ordinal() : WaveformColors.TRACK_BG_ODD.ordinal()]);
|
proj.setBackground(this.waveCanvas.colors[even ? WaveformColors.TRACK_BG_EVEN.ordinal() : WaveformColors.TRACK_BG_ODD.ordinal()]);
|
||||||
gc.setFillRule(SWT.FILL_EVEN_ODD);
|
proj.setFillRule(SWT.FILL_EVEN_ODD);
|
||||||
gc.fillRectangle(area);
|
proj.fillRectangle(area);
|
||||||
|
|
||||||
long scaleFactor = this.waveCanvas.getScaleFactor();
|
long scaleFactor = this.waveCanvas.getScaleFactor();
|
||||||
long beginPos = area.x;
|
long beginPos = area.x;
|
||||||
long beginTime = (beginPos + waveCanvas.getXOffset())*scaleFactor;
|
long beginTime = beginPos*scaleFactor;
|
||||||
long endTime = beginTime + area.width*scaleFactor;
|
long endTime = beginTime + area.width*scaleFactor;
|
||||||
|
|
||||||
Entry<Long, ?> first = signal.getEvents().floorEntry(beginTime);
|
Entry<Long, ?> first = signal.getEvents().floorEntry(beginTime);
|
||||||
|
@ -106,18 +106,17 @@ public class SignalPainter extends TrackPainter {
|
||||||
} else if (last == null) {
|
} else if (last == null) {
|
||||||
last = signal.getEvents().lastEntry();
|
last = signal.getEvents().lastEntry();
|
||||||
}
|
}
|
||||||
gc.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]);
|
proj.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]);
|
||||||
gc.setLineStyle(SWT.LINE_SOLID);
|
proj.setLineStyle(SWT.LINE_SOLID);
|
||||||
gc.setLineWidth(1);
|
proj.setLineWidth(1);
|
||||||
NavigableMap<Long, ?> entries = signal.getEvents().subMap(first.getKey(), false, last.getKey(), true);
|
NavigableMap<Long, ?> entries = signal.getEvents().subMap(first.getKey(), false, last.getKey(), true);
|
||||||
SignalChange left = new SignalChange(first);
|
SignalChange left = new SignalChange(first);
|
||||||
SignalChange right = new SignalChange(entries.size() > 0 ? entries.firstEntry() : first);
|
SignalChange right = new SignalChange(entries.size() > 0 ? entries.firstEntry() : first);
|
||||||
maxPosX = area.x + area.width;
|
maxPosX = area.x + area.width;
|
||||||
maxValX = maxPosX + (int)waveCanvas.getXOffset();
|
|
||||||
yOffsetT = this.waveCanvas.getTrackHeight() / 5 + area.y;
|
yOffsetT = this.waveCanvas.getTrackHeight() / 5 + area.y;
|
||||||
yOffsetM = this.waveCanvas.getTrackHeight() / 2 + area.y;
|
yOffsetM = this.waveCanvas.getTrackHeight() / 2 + area.y;
|
||||||
yOffsetB = 4 * this.waveCanvas.getTrackHeight() / 5 + area.y;
|
yOffsetB = 4 * this.waveCanvas.getTrackHeight() / 5 + area.y;
|
||||||
int xSigChangeBeginVal = Math.max(area.x + (int)waveCanvas.getXOffset(), (int) (left.time / this.waveCanvas.getScaleFactor()));
|
int xSigChangeBeginVal = Math.max(area.x, (int) (left.time / this.waveCanvas.getScaleFactor()));
|
||||||
int xSigChangeBeginPos = area.x;
|
int xSigChangeBeginPos = area.x;
|
||||||
int xSigChangeEndPos = Math.max(area.x, getXPosEnd(right.time));
|
int xSigChangeEndPos = Math.max(area.x, getXPosEnd(right.time));
|
||||||
|
|
||||||
|
@ -138,9 +137,9 @@ public class SignalPainter extends TrackPainter {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SignalStencil stencil = getStencil(gc, left, entries);
|
SignalStencil stencil = getStencil(proj.getGC(), left, entries);
|
||||||
do {
|
do {
|
||||||
stencil.draw(gc, area, left.value, right.value, xSigChangeBeginPos, xSigChangeEndPos, multiple);
|
stencil.draw(proj, area, left.value, right.value, xSigChangeBeginPos, xSigChangeEndPos, multiple);
|
||||||
if (right.time >= endTime)
|
if (right.time >= endTime)
|
||||||
break;
|
break;
|
||||||
left.assign(right);
|
left.assign(right);
|
||||||
|
@ -179,7 +178,7 @@ public class SignalPainter extends TrackPainter {
|
||||||
|
|
||||||
private interface SignalStencil {
|
private interface SignalStencil {
|
||||||
|
|
||||||
public void draw(GC gc, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple);
|
public void draw(Projection proj, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MultiBitStencil implements SignalStencil {
|
private class MultiBitStencil implements SignalStencil {
|
||||||
|
@ -193,7 +192,7 @@ public class SignalPainter extends TrackPainter {
|
||||||
tmpAwtFont = new java.awt.Font(fd.getName(), fd.getStyle(), height);
|
tmpAwtFont = new java.awt.Font(fd.getName(), fd.getStyle(), height);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(GC gc, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
public void draw(Projection proj, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
||||||
Color colorBorder = waveCanvas.colors[WaveformColors.SIGNAL0.ordinal()];
|
Color colorBorder = waveCanvas.colors[WaveformColors.SIGNAL0.ordinal()];
|
||||||
BitVector last = (BitVector) left;
|
BitVector last = (BitVector) left;
|
||||||
if (last.getValue().toString().contains("X")) {
|
if (last.getValue().toString().contains("X")) {
|
||||||
|
@ -211,9 +210,9 @@ public class SignalPainter extends TrackPainter {
|
||||||
xEnd - 1, yOffsetB,
|
xEnd - 1, yOffsetB,
|
||||||
xBegin + 1, yOffsetB
|
xBegin + 1, yOffsetB
|
||||||
};
|
};
|
||||||
gc.setForeground(colorBorder);
|
proj.setForeground(colorBorder);
|
||||||
gc.drawPolygon(points);
|
proj.drawPolygon(points);
|
||||||
gc.setForeground(waveCanvas.colors[WaveformColors.SIGNAL_TEXT.ordinal()]);
|
proj.setForeground(waveCanvas.colors[WaveformColors.SIGNAL_TEXT.ordinal()]);
|
||||||
//TODO: this code should be provided from a central location
|
//TODO: this code should be provided from a central location
|
||||||
String label = null;
|
String label = null;
|
||||||
switch(trackEntry.valueDisplay) {
|
switch(trackEntry.valueDisplay) {
|
||||||
|
@ -226,27 +225,23 @@ public class SignalPainter extends TrackPainter {
|
||||||
default:
|
default:
|
||||||
label="h'"+last.toHexString();
|
label="h'"+last.toHexString();
|
||||||
}
|
}
|
||||||
Point bb = getBoxWidth(gc, label);
|
Point bb = new Point(DUMMY_PANEL.getFontMetrics(tmpAwtFont).stringWidth(label), height);
|
||||||
if (xBegin < area.x) {
|
if (xBegin < area.x) {
|
||||||
xBegin = area.x;
|
xBegin = area.x;
|
||||||
width = xEnd - xBegin;
|
width = xEnd - xBegin;
|
||||||
}
|
}
|
||||||
if (width > (bb.x+1)) {
|
if (width > (bb.x+1)) {
|
||||||
Rectangle old = gc.getClipping();
|
Rectangle old = proj.getClipping();
|
||||||
gc.setClipping(xBegin + 3, yOffsetT, xEnd - xBegin - 5, yOffsetB - yOffsetT);
|
proj.setClipping(xBegin + 3, yOffsetT, xEnd - xBegin - 5, yOffsetB - yOffsetT);
|
||||||
gc.drawText(label, xBegin + 3, yOffsetM - bb.y / 2 - 1);
|
proj.drawText(label, xBegin + 3, yOffsetM - bb.y / 2 - 1);
|
||||||
gc.setClipping(old);
|
proj.setClipping(old);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gc.setForeground(colorBorder);
|
proj.setForeground(colorBorder);
|
||||||
gc.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
|
proj.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Point getBoxWidth(GC gc, String label) {
|
|
||||||
return new Point(DUMMY_PANEL.getFontMetrics(tmpAwtFont).stringWidth(label), height);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MultiBitStencilAnalog implements SignalStencil {
|
private class MultiBitStencilAnalog implements SignalStencil {
|
||||||
|
@ -277,25 +272,25 @@ public class SignalPainter extends TrackPainter {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(GC gc, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
public void draw(Projection proj, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
||||||
long leftVal = ((BitVector) left).toUnsignedValue();
|
long leftVal = ((BitVector) left).toUnsignedValue();
|
||||||
long rightVal= ((BitVector) right).toUnsignedValue();
|
long rightVal= ((BitVector) right).toUnsignedValue();
|
||||||
gc.setForeground(waveCanvas.colors[WaveformColors.SIGNAL_REAL.ordinal()]);
|
proj.setForeground(waveCanvas.colors[WaveformColors.SIGNAL_REAL.ordinal()]);
|
||||||
int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT));
|
int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT));
|
||||||
int yOffsetRight = (int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT));
|
int yOffsetRight = (int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT));
|
||||||
if(continous) {
|
if(continous) {
|
||||||
if (xEnd > maxPosX) {
|
if (xEnd > maxPosX) {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetRight);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetRight);
|
||||||
} else {
|
} else {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (xEnd > maxPosX) {
|
if (xEnd > maxPosX) {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetLeft);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetLeft);
|
||||||
} else {
|
} else {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft);
|
||||||
if(yOffsetRight!=yOffsetLeft) {
|
if(yOffsetRight!=yOffsetLeft) {
|
||||||
gc.drawLine(xEnd, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
proj.drawLine(xEnd, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -303,12 +298,12 @@ public class SignalPainter extends TrackPainter {
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SingleBitStencil implements SignalStencil {
|
private class SingleBitStencil implements SignalStencil {
|
||||||
public void draw(GC gc, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
public void draw(Projection proj, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
||||||
if (multiple) {
|
if (multiple) {
|
||||||
gc.setForeground(waveCanvas.colors[WaveformColors.SIGNALU.ordinal()]);
|
proj.setForeground(waveCanvas.colors[WaveformColors.SIGNALU.ordinal()]);
|
||||||
gc.drawLine(xBegin, yOffsetT, xBegin, yOffsetB);
|
proj.drawLine(xBegin, yOffsetT, xBegin, yOffsetB);
|
||||||
if(xEnd>xBegin)
|
if(xEnd>xBegin)
|
||||||
gc.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
|
proj.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
|
||||||
} else {
|
} else {
|
||||||
Color color = waveCanvas.colors[WaveformColors.SIGNALX.ordinal()];
|
Color color = waveCanvas.colors[WaveformColors.SIGNALX.ordinal()];
|
||||||
int yOffset = yOffsetM;
|
int yOffset = yOffsetM;
|
||||||
|
@ -326,11 +321,11 @@ public class SignalPainter extends TrackPainter {
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
gc.setForeground(color);
|
proj.setForeground(color);
|
||||||
if (xEnd > maxPosX) {
|
if (xEnd > maxPosX) {
|
||||||
gc.drawLine(xBegin, yOffset, maxPosX, yOffset);
|
proj.drawLine(xBegin, yOffset, maxPosX, yOffset);
|
||||||
} else {
|
} else {
|
||||||
gc.drawLine(xBegin, yOffset, xEnd, yOffset);
|
proj.drawLine(xBegin, yOffset, xEnd, yOffset);
|
||||||
int yNext = yOffsetM;
|
int yNext = yOffsetM;
|
||||||
switch (((BitVector) right).getValue()[0]) {
|
switch (((BitVector) right).getValue()[0]) {
|
||||||
case '1':
|
case '1':
|
||||||
|
@ -342,7 +337,7 @@ public class SignalPainter extends TrackPainter {
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
if (yOffset != yNext)
|
if (yOffset != yNext)
|
||||||
gc.drawLine(xEnd, yOffset, xEnd, yNext);
|
proj.drawLine(xEnd, yOffset, xEnd, yNext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -383,7 +378,7 @@ public class SignalPainter extends TrackPainter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(GC gc, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
public void draw(Projection proj, Rectangle area, Object left, Object right, int xBegin, int xEnd, boolean multiple) {
|
||||||
double leftVal = (Double) left;
|
double leftVal = (Double) left;
|
||||||
double rightVal= (Double) right;
|
double rightVal= (Double) right;
|
||||||
if(Double.isNaN(leftVal)) {
|
if(Double.isNaN(leftVal)) {
|
||||||
|
@ -396,31 +391,31 @@ public class SignalPainter extends TrackPainter {
|
||||||
xEnd, yOffsetB,
|
xEnd, yOffsetB,
|
||||||
xBegin, yOffsetB
|
xBegin, yOffsetB
|
||||||
};
|
};
|
||||||
gc.setForeground(color);
|
proj.setForeground(color);
|
||||||
gc.drawPolygon(points);
|
proj.drawPolygon(points);
|
||||||
gc.setBackground(color);
|
proj.setBackground(color);
|
||||||
gc.fillPolygon(points);
|
proj.fillPolygon(points);
|
||||||
} else {
|
} else {
|
||||||
gc.setForeground(color);
|
proj.setForeground(color);
|
||||||
gc.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
|
proj.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gc.setForeground(waveCanvas.colors[WaveformColors.SIGNAL_REAL.ordinal()]);
|
proj.setForeground(waveCanvas.colors[WaveformColors.SIGNAL_REAL.ordinal()]);
|
||||||
int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT));
|
int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT));
|
||||||
int yOffsetRight = Double.isNaN(rightVal)?yOffsetLeft:(int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT));
|
int yOffsetRight = Double.isNaN(rightVal)?yOffsetLeft:(int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT));
|
||||||
if(continous) {
|
if(continous) {
|
||||||
if (xEnd > maxPosX) {
|
if (xEnd > maxPosX) {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetRight);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetRight);
|
||||||
} else {
|
} else {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (xEnd > maxPosX) {
|
if (xEnd > maxPosX) {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetLeft);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetLeft);
|
||||||
} else {
|
} else {
|
||||||
gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft);
|
proj.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft);
|
||||||
if(yOffsetRight!=yOffsetLeft) {
|
if(yOffsetRight!=yOffsetLeft) {
|
||||||
gc.drawLine(xEnd, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
proj.drawLine(xEnd, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,22 +60,22 @@ public class StreamPainter extends TrackPainter{
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void paintArea(GC gc, Rectangle area) {
|
public void paintArea(Projection proj, Rectangle area) {
|
||||||
if(stream.getEvents().size()==0) return;
|
if(stream.getEvents().size()==0) return;
|
||||||
int trackHeight=trackEntry.height/stream.getMaxConcurrency();
|
int trackHeight=trackEntry.height/stream.getMaxConcurrency();
|
||||||
txBase=trackHeight/5;
|
txBase=trackHeight/5;
|
||||||
txHeight=trackHeight*3/5;
|
txHeight=trackHeight*3/5;
|
||||||
if(trackEntry.selected) {
|
if(trackEntry.selected) {
|
||||||
gc.setBackground(this.waveCanvas.colors[WaveformColors.TRACK_BG_HIGHLITE.ordinal()]);
|
proj.setBackground(this.waveCanvas.colors[WaveformColors.TRACK_BG_HIGHLITE.ordinal()]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
gc.setBackground(this.waveCanvas.colors[even?WaveformColors.TRACK_BG_EVEN.ordinal():WaveformColors.TRACK_BG_ODD.ordinal()]);
|
proj.setBackground(this.waveCanvas.colors[even?WaveformColors.TRACK_BG_EVEN.ordinal():WaveformColors.TRACK_BG_ODD.ordinal()]);
|
||||||
gc.setFillRule(SWT.FILL_EVEN_ODD);
|
proj.setFillRule(SWT.FILL_EVEN_ODD);
|
||||||
gc.fillRectangle(area);
|
proj.fillRectangle(area);
|
||||||
|
|
||||||
long scaleFactor = this.waveCanvas.getScaleFactor();
|
long scaleFactor = this.waveCanvas.getScaleFactor();
|
||||||
long beginPos = area.x;
|
long beginPos = area.x;
|
||||||
long beginTime = (beginPos + waveCanvas.getXOffset())*scaleFactor;
|
long beginTime = beginPos*scaleFactor;
|
||||||
//long endPos = beginPos + area.width;
|
//long endPos = beginPos + area.width;
|
||||||
long endTime = beginTime + area.width*scaleFactor;
|
long endTime = beginTime + area.width*scaleFactor;
|
||||||
|
|
||||||
|
@ -83,21 +83,21 @@ public class StreamPainter extends TrackPainter{
|
||||||
Entry<Long, ?> lastTx=stream.getEvents().ceilingEntry(endTime);
|
Entry<Long, ?> lastTx=stream.getEvents().ceilingEntry(endTime);
|
||||||
if(firstTx==null) firstTx = stream.getEvents().firstEntry();
|
if(firstTx==null) firstTx = stream.getEvents().firstEntry();
|
||||||
if(lastTx==null) lastTx=stream.getEvents().lastEntry();
|
if(lastTx==null) lastTx=stream.getEvents().lastEntry();
|
||||||
gc.setFillRule(SWT.FILL_EVEN_ODD);
|
proj.setFillRule(SWT.FILL_EVEN_ODD);
|
||||||
gc.setLineStyle(SWT.LINE_SOLID);
|
proj.setLineStyle(SWT.LINE_SOLID);
|
||||||
gc.setLineWidth(1);
|
proj.setLineWidth(1);
|
||||||
gc.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]);
|
proj.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]);
|
||||||
|
|
||||||
for( int y1=area.y+trackHeight/2; y1<area.y+trackEntry.height; y1+=trackHeight)
|
for( int y1=area.y+trackHeight/2; y1<area.y+trackEntry.height; y1+=trackHeight)
|
||||||
gc.drawLine(area.x, y1, area.x+area.width, y1);
|
proj.drawLine(area.x, y1, area.x+area.width, y1);
|
||||||
if(firstTx==lastTx) {
|
if(firstTx==lastTx) {
|
||||||
for(ITxEvent txEvent:(Collection<? extends ITxEvent>)firstTx.getValue())
|
for(ITxEvent txEvent:(Collection<? extends ITxEvent>)firstTx.getValue())
|
||||||
drawTx(gc, area, txEvent.getTransaction(), false);
|
drawTx(proj, area, txEvent.getTransaction(), false);
|
||||||
}else{
|
}else{
|
||||||
seenTx.clear();
|
seenTx.clear();
|
||||||
NavigableMap<Long,?> entries = stream.getEvents().subMap(firstTx.getKey(), true, lastTx.getKey(), true);
|
NavigableMap<Long,?> entries = stream.getEvents().subMap(firstTx.getKey(), true, lastTx.getKey(), true);
|
||||||
boolean highlighed=false;
|
boolean highlighed=false;
|
||||||
gc.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]);
|
proj.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]);
|
||||||
|
|
||||||
for(Entry<Long, ?> entry: entries.entrySet())
|
for(Entry<Long, ?> entry: entries.entrySet())
|
||||||
for(ITxEvent txEvent:(Collection<? extends ITxEvent>)entry.getValue()){
|
for(ITxEvent txEvent:(Collection<? extends ITxEvent>)entry.getValue()){
|
||||||
|
@ -106,38 +106,38 @@ public class StreamPainter extends TrackPainter{
|
||||||
if(txEvent.getType()==ITxEvent.Type.END){
|
if(txEvent.getType()==ITxEvent.Type.END){
|
||||||
ITx tx = txEvent.getTransaction();
|
ITx tx = txEvent.getTransaction();
|
||||||
highlighed|=waveCanvas.currentSelection!=null && waveCanvas.currentSelection.equals(tx);
|
highlighed|=waveCanvas.currentSelection!=null && waveCanvas.currentSelection.equals(tx);
|
||||||
drawTx(gc, area, tx, false);
|
drawTx(proj, area, tx, false);
|
||||||
seenTx.remove(tx);
|
seenTx.remove(tx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(ITx tx:seenTx){
|
for(ITx tx:seenTx){
|
||||||
drawTx(gc, area, tx, false);
|
drawTx(proj, area, tx, false);
|
||||||
}
|
}
|
||||||
if(highlighed){
|
if(highlighed){
|
||||||
gc.setForeground(this.waveCanvas.colors[WaveformColors.LINE_HIGHLITE.ordinal()]);
|
proj.setForeground(this.waveCanvas.colors[WaveformColors.LINE_HIGHLITE.ordinal()]);
|
||||||
drawTx(gc, area, waveCanvas.currentSelection, true);
|
drawTx(proj, area, waveCanvas.currentSelection, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void drawTx(GC gc, Rectangle area, ITx tx, boolean highlighted ) {
|
protected void drawTx(Projection proj, Rectangle area, ITx tx, boolean highlighted ) {
|
||||||
// compute colors
|
// compute colors
|
||||||
java.awt.Color[] fallbackColors = trackEntry.getColors();
|
java.awt.Color[] fallbackColors = trackEntry.getColors();
|
||||||
java.awt.Color[] transColor = TrackEntry.computeColor( tx.getGenerator().getName(), fallbackColors[0], fallbackColors[1] );
|
java.awt.Color[] transColor = TrackEntry.computeColor( tx.getGenerator().getName(), fallbackColors[0], fallbackColors[1] );
|
||||||
|
|
||||||
gc.setBackground( toSwtColor( gc, transColor[highlighted?1:0] ) );
|
proj.setBackground( toSwtColor( proj.getGC(), transColor[highlighted?1:0] ) );
|
||||||
|
|
||||||
int offset = tx.getConcurrencyIndex()*this.waveCanvas.getTrackHeight();
|
int offset = tx.getConcurrencyIndex()*this.waveCanvas.getTrackHeight();
|
||||||
Rectangle bb = new Rectangle(
|
Rectangle bb = new Rectangle(
|
||||||
(int)(tx.getBeginTime()/this.waveCanvas.getScaleFactor()-waveCanvas.getXOffset()), area.y+offset+txBase,
|
(int)(tx.getBeginTime()/this.waveCanvas.getScaleFactor()), area.y+offset+txBase,
|
||||||
(int)((tx.getEndTime()-tx.getBeginTime())/this.waveCanvas.getScaleFactor()), txHeight);
|
(int)((tx.getEndTime()-tx.getBeginTime())/this.waveCanvas.getScaleFactor()), txHeight);
|
||||||
|
|
||||||
if(bb.x+bb.width<area.x || bb.x>area.x+area.width) return;
|
if(bb.x+bb.width<area.x || bb.x>area.x+area.width) return;
|
||||||
if(bb.width==0){
|
if(bb.width==0){
|
||||||
gc.drawLine(bb.x, bb.y, bb.x, bb.y+bb.height);
|
proj.drawLine(bb.x, bb.y, bb.x, bb.y+bb.height);
|
||||||
} else if(bb.width<10){
|
} else if(bb.width<10){
|
||||||
gc.fillRectangle(bb);
|
proj.fillRectangle(bb);
|
||||||
gc.drawRectangle(bb);
|
proj.drawRectangle(bb);
|
||||||
} else {
|
} else {
|
||||||
if(bb.x < area.x) {
|
if(bb.x < area.x) {
|
||||||
bb.width = bb.width-(area.x-bb.x)+5;
|
bb.width = bb.width-(area.x-bb.x)+5;
|
||||||
|
@ -149,8 +149,8 @@ public class StreamPainter extends TrackPainter{
|
||||||
bb_x2=area_x2+5;
|
bb_x2=area_x2+5;
|
||||||
bb.width= bb_x2-bb.x;
|
bb.width= bb_x2-bb.x;
|
||||||
}
|
}
|
||||||
gc.fillRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5);
|
proj.fillRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5);
|
||||||
gc.drawRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5);
|
proj.drawRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ import java.util.Map.Entry;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.graphics.GC;
|
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
import org.eclipse.swt.graphics.Rectangle;
|
||||||
|
|
||||||
import com.minres.scviewer.database.ui.WaveformColors;
|
import com.minres.scviewer.database.ui.WaveformColors;
|
||||||
|
@ -35,11 +34,11 @@ public class TrackAreaPainter implements IPainter {
|
||||||
this.trackVerticalOffset= new TreeMap<>();
|
this.trackVerticalOffset= new TreeMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void paintArea(GC gc, Rectangle a) {
|
public void paintArea(Projection proj, Rectangle a) {
|
||||||
Rectangle area = new Rectangle(a.x, a.y+waveCanvas.rulerHeight, a.width, a.height-waveCanvas.rulerHeight);
|
Rectangle area = proj.unProject(new Rectangle(a.x, a.y+waveCanvas.rulerHeight, a.width, a.height-waveCanvas.rulerHeight));
|
||||||
gc.setBackground(this.waveCanvas.colors[WaveformColors.TRACK_BG_EVEN.ordinal()]);
|
proj.setBackground(this.waveCanvas.colors[WaveformColors.TRACK_BG_EVEN.ordinal()]);
|
||||||
gc.setFillRule(SWT.FILL_EVEN_ODD);
|
proj.setFillRule(SWT.FILL_EVEN_ODD);
|
||||||
gc.fillRectangle(area);
|
proj.fillRectangle(area);
|
||||||
if(trackVerticalOffset.size()>0){
|
if(trackVerticalOffset.size()>0){
|
||||||
Integer firstKey=trackVerticalOffset.floorKey(area.y);
|
Integer firstKey=trackVerticalOffset.floorKey(area.y);
|
||||||
if(firstKey==null) firstKey=trackVerticalOffset.firstKey();
|
if(firstKey==null) firstKey=trackVerticalOffset.firstKey();
|
||||||
|
@ -49,12 +48,12 @@ public class TrackAreaPainter implements IPainter {
|
||||||
subArea.y=firstKey;
|
subArea.y=firstKey;
|
||||||
IWaveformPainter p = trackVerticalOffset.get(firstKey);
|
IWaveformPainter p = trackVerticalOffset.get(firstKey);
|
||||||
subArea.height=p.getHeight();
|
subArea.height=p.getHeight();
|
||||||
p.paintArea(gc, subArea);
|
p.paintArea(proj, subArea);
|
||||||
}else{
|
}else{
|
||||||
for(Entry<Integer, IWaveformPainter> entry : trackVerticalOffset.subMap(firstKey, true, lastKey, true).entrySet()){
|
for(Entry<Integer, IWaveformPainter> entry : trackVerticalOffset.subMap(firstKey, true, lastKey, true).entrySet()){
|
||||||
subArea.y=entry.getKey();
|
subArea.y=entry.getKey();
|
||||||
subArea.height=entry.getValue().getHeight();
|
subArea.height=entry.getValue().getHeight();
|
||||||
entry.getValue().paintArea(gc, subArea);
|
entry.getValue().paintArea(proj, subArea);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ import org.eclipse.swt.graphics.GC;
|
||||||
import org.eclipse.swt.graphics.Point;
|
import org.eclipse.swt.graphics.Point;
|
||||||
import org.eclipse.swt.graphics.RGB;
|
import org.eclipse.swt.graphics.RGB;
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
import org.eclipse.swt.graphics.Rectangle;
|
||||||
import org.eclipse.swt.graphics.Transform;
|
|
||||||
import org.eclipse.swt.widgets.Canvas;
|
import org.eclipse.swt.widgets.Canvas;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Display;
|
import org.eclipse.swt.widgets.Display;
|
||||||
|
@ -45,7 +44,7 @@ import com.minres.scviewer.database.ui.IWaveformViewer;
|
||||||
import com.minres.scviewer.database.ui.TrackEntry;
|
import com.minres.scviewer.database.ui.TrackEntry;
|
||||||
import com.minres.scviewer.database.ui.WaveformColors;
|
import com.minres.scviewer.database.ui.WaveformColors;
|
||||||
|
|
||||||
public class WaveformCanvas extends Canvas{
|
public class WaveformCanvas extends Canvas {
|
||||||
|
|
||||||
Color[] colors = new Color[WaveformColors.values().length];
|
Color[] colors = new Color[WaveformColors.values().length];
|
||||||
|
|
||||||
|
@ -60,9 +59,7 @@ public class WaveformCanvas extends Canvas{
|
||||||
private long maxTime;
|
private long maxTime;
|
||||||
|
|
||||||
protected Point origin; /* original size */
|
protected Point origin; /* original size */
|
||||||
|
|
||||||
protected Transform transform;
|
|
||||||
|
|
||||||
protected int rulerHeight=40;
|
protected int rulerHeight=40;
|
||||||
|
|
||||||
protected List<IPainter> painterList;
|
protected List<IPainter> painterList;
|
||||||
|
@ -89,7 +86,7 @@ public class WaveformCanvas extends Canvas{
|
||||||
* the style of this control.
|
* the style of this control.
|
||||||
*/
|
*/
|
||||||
public WaveformCanvas(final Composite parent, int style) {
|
public WaveformCanvas(final Composite parent, int style) {
|
||||||
super(parent, style | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL | SWT.H_SCROLL);
|
super(parent, style | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND | SWT.V_SCROLL | SWT.H_SCROLL);
|
||||||
addControlListener(new ControlAdapter() { /* resize listener. */
|
addControlListener(new ControlAdapter() { /* resize listener. */
|
||||||
public void controlResized(ControlEvent event) {
|
public void controlResized(ControlEvent event) {
|
||||||
syncScrollBars();
|
syncScrollBars();
|
||||||
|
@ -102,7 +99,6 @@ public class WaveformCanvas extends Canvas{
|
||||||
});
|
});
|
||||||
painterList = new LinkedList<IPainter>();
|
painterList = new LinkedList<IPainter>();
|
||||||
origin = new Point(0, 0);
|
origin = new Point(0, 0);
|
||||||
transform = new Transform(getDisplay());
|
|
||||||
selectionListeners = new LinkedList<>();
|
selectionListeners = new LinkedList<>();
|
||||||
cursorPainters= new ArrayList<>();
|
cursorPainters= new ArrayList<>();
|
||||||
wave2painterMap=new HashMap<>();
|
wave2painterMap=new HashMap<>();
|
||||||
|
@ -150,10 +146,6 @@ public class WaveformCanvas extends Canvas{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getXOffset() {
|
|
||||||
return -origin.x;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addCursoPainter(CursorPainter cursorPainter){
|
public void addCursoPainter(CursorPainter cursorPainter){
|
||||||
painterList.add(cursorPainter);
|
painterList.add(cursorPainter);
|
||||||
cursorPainters.add(cursorPainter);
|
cursorPainters.add(cursorPainter);
|
||||||
|
@ -323,7 +315,6 @@ public class WaveformCanvas extends Canvas{
|
||||||
* Dispose the garbage here
|
* Dispose the garbage here
|
||||||
*/
|
*/
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
transform.dispose();
|
|
||||||
for (WaveformColors c : WaveformColors.values())
|
for (WaveformColors c : WaveformColors.values())
|
||||||
colors[c.ordinal()].dispose();
|
colors[c.ordinal()].dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
|
@ -402,24 +393,16 @@ public class WaveformCanvas extends Canvas{
|
||||||
vertical.setSelection(-origin.y);
|
vertical.setSelection(-origin.y);
|
||||||
redraw();
|
redraw();
|
||||||
fireSelectionEvent();
|
fireSelectionEvent();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Paint function */
|
/* Paint function */
|
||||||
private void paint(GC gc) {
|
private void paint(GC gc) {
|
||||||
Rectangle clientRect = getClientArea(); /* Canvas' painting area */
|
Rectangle clientRect = getClientArea(); /* Canvas' painting area */
|
||||||
// clientRect.x = -origin.x;
|
Projection p = new Projection(gc);
|
||||||
clientRect.y = -origin.y;
|
p.setTranslation(origin);
|
||||||
// reset the transform
|
|
||||||
transform.identity();
|
|
||||||
// shift the content
|
|
||||||
// DO NOT SHIFT HORIZONTALLY, the range is WAY TOO BIG for float!!!
|
|
||||||
transform.translate(0, origin.y);
|
|
||||||
gc.setTransform(transform);
|
|
||||||
gc.setClipping(clientRect);
|
|
||||||
if (painterList.size() > 0 ) {
|
if (painterList.size() > 0 ) {
|
||||||
for (IPainter painter : painterList)
|
for (IPainter painter : painterList)
|
||||||
painter.paintArea(gc, clientRect);
|
painter.paintArea(p, clientRect);
|
||||||
} else {
|
} else {
|
||||||
gc.fillRectangle(clientRect);
|
gc.fillRectangle(clientRect);
|
||||||
initScrollBars();
|
initScrollBars();
|
||||||
|
|
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %Bundle-Name
|
Bundle-Name: %Bundle-Name
|
||||||
Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true
|
Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true
|
||||||
Bundle-Version: 2.6.0.qualifier
|
Bundle-Version: 2.6.1.qualifier
|
||||||
Bundle-Vendor: %Bundle-Vendor
|
Bundle-Vendor: %Bundle-Vendor
|
||||||
Require-Bundle: javax.inject;bundle-version="1.0.0",
|
Require-Bundle: javax.inject;bundle-version="1.0.0",
|
||||||
org.eclipse.core.runtime;bundle-version="3.11.1",
|
org.eclipse.core.runtime;bundle-version="3.11.1",
|
||||||
|
@ -26,12 +26,10 @@ Require-Bundle: javax.inject;bundle-version="1.0.0",
|
||||||
org.eclipse.equinox.preferences,
|
org.eclipse.equinox.preferences,
|
||||||
org.eclipse.core.expressions,
|
org.eclipse.core.expressions,
|
||||||
org.eclipse.e4.core.commands;bundle-version="0.11.0",
|
org.eclipse.e4.core.commands;bundle-version="0.11.0",
|
||||||
org.eclipse.e4.ui.workbench.addons.swt,
|
|
||||||
com.opcoach.e4.preferences,
|
com.opcoach.e4.preferences,
|
||||||
org.eclipse.e4.core.di.extensions,
|
org.eclipse.e4.core.di.extensions,
|
||||||
org.eclipse.e4.ui.css.swt.theme;bundle-version="0.10.0",
|
org.eclipse.e4.ui.css.swt.theme;bundle-version="0.10.0",
|
||||||
org.eclipse.core.resources;bundle-version="3.13.0",
|
org.eclipse.core.resources;bundle-version="3.13.0"
|
||||||
com.opcoach.e4.preferences.mainmenu;bundle-version="1.2.0"
|
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||||
Import-Package: com.minres.scviewer.database,
|
Import-Package: com.minres.scviewer.database,
|
||||||
javax.inject;version="1.0.0"
|
javax.inject;version="1.0.0"
|
||||||
|
|
|
@ -84,12 +84,5 @@
|
||||||
category="com.minres.scviewer.e4.application.preferences.scviewer">
|
category="com.minres.scviewer.e4.application.preferences.scviewer">
|
||||||
</page>
|
</page>
|
||||||
</extension>
|
</extension>
|
||||||
<extension
|
|
||||||
point="com.opcoach.e4.preferences.e4PreferenceStoreProvider">
|
|
||||||
<preferenceStoreProvider
|
|
||||||
class="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.preferences.PreferencesStoreProvider"
|
|
||||||
pluginId="com.minres.scviewer.e4.application">
|
|
||||||
</preferenceStoreProvider>
|
|
||||||
</extension>
|
|
||||||
|
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>com.minres.scviewer.e4.application</artifactId>
|
<artifactId>com.minres.scviewer.e4.application</artifactId>
|
||||||
<version>2.6.0-SNAPSHOT</version>
|
<version>2.6.1-SNAPSHOT</version>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.minres.scviewer</groupId>
|
<groupId>com.minres.scviewer</groupId>
|
||||||
<artifactId>com.minres.scviewer.parent</artifactId>
|
<artifactId>com.minres.scviewer.parent</artifactId>
|
||||||
|
|
|
@ -4,45 +4,43 @@ package com.minres.scviewer.e4.application.handlers;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.preferences.ConfigurationScope;
|
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||||
import org.eclipse.e4.core.contexts.Active;
|
|
||||||
import org.eclipse.e4.core.di.annotations.Execute;
|
import org.eclipse.e4.core.di.annotations.Execute;
|
||||||
|
import org.eclipse.e4.core.di.annotations.Optional;
|
||||||
|
import org.eclipse.e4.core.di.extensions.Preference;
|
||||||
import org.eclipse.e4.ui.model.application.MApplication;
|
import org.eclipse.e4.ui.model.application.MApplication;
|
||||||
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
|
|
||||||
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
|
|
||||||
import org.eclipse.e4.ui.model.application.ui.menu.MHandledItem;
|
import org.eclipse.e4.ui.model.application.ui.menu.MHandledItem;
|
||||||
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
import org.osgi.service.prefs.BackingStoreException;
|
||||||
|
|
||||||
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
|
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
|
||||||
import com.opcoach.e4.preferences.ScopedPreferenceStore;
|
|
||||||
|
|
||||||
|
@SuppressWarnings("restriction")
|
||||||
public class EnableHover {
|
public class EnableHover {
|
||||||
static final String TAG_NAME = "EnableHover"; //$NON-NLS-1$
|
static final String TAG_NAME = "EnableHover"; //$NON-NLS-1$
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
MApplication application;
|
MApplication application;
|
||||||
|
|
||||||
@PostConstruct
|
@Inject
|
||||||
public void initialize(EModelService modelService) {
|
@Optional
|
||||||
|
public void reactOnShowHoverChange(EModelService modelService, @Preference(value = PreferenceConstants.SHOW_HOVER) Boolean hover) {
|
||||||
List<String> tags = new LinkedList<>();
|
List<String> tags = new LinkedList<>();
|
||||||
tags.add(TAG_NAME);
|
tags.add(TAG_NAME);
|
||||||
List<MHandledItem> elements = modelService.findElements(application, null, MHandledItem.class, tags );
|
List<MHandledItem> elements = modelService.findElements(application, null, MHandledItem.class, tags );
|
||||||
// cover initialization stuff, sync it with code
|
|
||||||
IPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
|
|
||||||
boolean state = store.getBoolean(PreferenceConstants.SHOW_HOVER);
|
|
||||||
for( MHandledItem hi : elements ){
|
for( MHandledItem hi : elements ){
|
||||||
hi.setSelected(state);
|
hi.setSelected(hover);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Execute
|
@Execute
|
||||||
public void execute(@Active MPart part, @Active MWindow window, MHandledItem handledItem, EModelService modelService ) {
|
public void execute(MHandledItem handledItem, @Preference(nodePath = PreferenceConstants.PREFERENCES_SCOPE) IEclipsePreferences prefs ) {
|
||||||
IPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
|
try {
|
||||||
store.setValue(PreferenceConstants.SHOW_HOVER, handledItem.isSelected());
|
prefs.putBoolean(PreferenceConstants.SHOW_HOVER, handledItem.isSelected());
|
||||||
|
prefs.flush();
|
||||||
|
} catch (BackingStoreException e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -13,7 +13,6 @@ import org.eclipse.swt.widgets.Label;
|
||||||
|
|
||||||
import org.eclipse.jface.action.ContributionItem;
|
import org.eclipse.jface.action.ContributionItem;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
import org.eclipse.jface.action.LegacyActionTools;
|
|
||||||
import org.eclipse.jface.action.StatusLineLayoutData;
|
import org.eclipse.jface.action.StatusLineLayoutData;
|
||||||
import org.eclipse.jface.resource.JFaceColors;
|
import org.eclipse.jface.resource.JFaceColors;
|
||||||
|
|
||||||
|
|
|
@ -18,19 +18,8 @@ import org.eclipse.e4.ui.di.UIEventTopic;
|
||||||
import org.eclipse.e4.ui.di.UISynchronize;
|
import org.eclipse.e4.ui.di.UISynchronize;
|
||||||
import org.eclipse.e4.ui.services.IServiceConstants;
|
import org.eclipse.e4.ui.services.IServiceConstants;
|
||||||
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
||||||
import org.eclipse.jface.action.ContributionItem;
|
|
||||||
import org.eclipse.jface.action.StatusLineManager;
|
import org.eclipse.jface.action.StatusLineManager;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.custom.CLabel;
|
|
||||||
import org.eclipse.swt.graphics.Font;
|
|
||||||
import org.eclipse.swt.graphics.FontData;
|
|
||||||
import org.eclipse.swt.graphics.Point;
|
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
|
||||||
import org.eclipse.swt.layout.GridData;
|
|
||||||
import org.eclipse.swt.layout.GridLayout;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
|
|
||||||
import com.minres.scviewer.e4.application.Messages;
|
import com.minres.scviewer.e4.application.Messages;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,7 +18,6 @@ import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.regex.PatternSyntaxException;
|
import java.util.regex.PatternSyntaxException;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -38,7 +37,6 @@ import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider;
|
||||||
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
|
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
|
||||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||||
import org.eclipse.jface.viewers.IElementComparer;
|
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||||
|
@ -152,15 +150,11 @@ public class TransactionDetails {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void treeCollapsed(TreeExpansionEvent event) {
|
public void treeCollapsed(TreeExpansionEvent event) {
|
||||||
Object o = event.getElement();
|
|
||||||
TreePath[] paths = treeViewer.getExpandedTreePaths();
|
|
||||||
treeViewer.getSelection();
|
treeViewer.getSelection();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void treeExpanded(TreeExpansionEvent event) {
|
public void treeExpanded(TreeExpansionEvent event) {
|
||||||
Object o = event.getElement();
|
|
||||||
TreePath[] paths = treeViewer.getExpandedTreePaths();
|
|
||||||
treeViewer.getSelection();
|
treeViewer.getSelection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,17 +31,18 @@ import javax.annotation.PostConstruct;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
||||||
import org.eclipse.core.internal.preferences.InstancePreferences;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.core.runtime.IStatus;
|
import org.eclipse.core.runtime.IStatus;
|
||||||
import org.eclipse.core.runtime.OperationCanceledException;
|
import org.eclipse.core.runtime.OperationCanceledException;
|
||||||
import org.eclipse.core.runtime.Status;
|
import org.eclipse.core.runtime.Status;
|
||||||
import org.eclipse.core.runtime.jobs.Job;
|
import org.eclipse.core.runtime.jobs.Job;
|
||||||
import org.eclipse.core.runtime.jobs.JobGroup;
|
import org.eclipse.core.runtime.jobs.JobGroup;
|
||||||
import org.eclipse.core.runtime.preferences.ConfigurationScope;
|
import org.eclipse.core.runtime.preferences.DefaultScope;
|
||||||
|
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
|
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
|
||||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
|
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
|
||||||
import org.eclipse.e4.core.di.annotations.Optional;
|
import org.eclipse.e4.core.di.annotations.Optional;
|
||||||
|
import org.eclipse.e4.core.di.extensions.Preference;
|
||||||
import org.eclipse.e4.core.services.events.IEventBroker;
|
import org.eclipse.e4.core.services.events.IEventBroker;
|
||||||
import org.eclipse.e4.ui.di.Focus;
|
import org.eclipse.e4.ui.di.Focus;
|
||||||
import org.eclipse.e4.ui.di.PersistState;
|
import org.eclipse.e4.ui.di.PersistState;
|
||||||
|
@ -52,9 +53,7 @@ import org.eclipse.e4.ui.services.EMenuService;
|
||||||
import org.eclipse.e4.ui.workbench.modeling.EPartService;
|
import org.eclipse.e4.ui.workbench.modeling.EPartService;
|
||||||
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
|
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
|
||||||
import org.eclipse.jface.dialogs.MessageDialog;
|
import org.eclipse.jface.dialogs.MessageDialog;
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
|
||||||
import org.eclipse.jface.resource.StringConverter;
|
import org.eclipse.jface.resource.StringConverter;
|
||||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
|
@ -80,7 +79,7 @@ import org.eclipse.swt.widgets.Table;
|
||||||
import org.eclipse.swt.widgets.TableColumn;
|
import org.eclipse.swt.widgets.TableColumn;
|
||||||
import org.eclipse.swt.widgets.TableItem;
|
import org.eclipse.swt.widgets.TableItem;
|
||||||
import org.eclipse.swt.widgets.Widget;
|
import org.eclipse.swt.widgets.Widget;
|
||||||
import org.osgi.service.prefs.BackingStoreException;
|
import org.osgi.service.prefs.Preferences;
|
||||||
|
|
||||||
import com.minres.scviewer.database.DataType;
|
import com.minres.scviewer.database.DataType;
|
||||||
import com.minres.scviewer.database.ITx;
|
import com.minres.scviewer.database.ITx;
|
||||||
|
@ -108,7 +107,6 @@ import com.minres.scviewer.e4.application.internal.util.FileMonitor;
|
||||||
import com.minres.scviewer.e4.application.internal.util.IFileChangeListener;
|
import com.minres.scviewer.e4.application.internal.util.IFileChangeListener;
|
||||||
import com.minres.scviewer.e4.application.internal.util.IModificationChecker;
|
import com.minres.scviewer.e4.application.internal.util.IModificationChecker;
|
||||||
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
|
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
|
||||||
import com.opcoach.e4.preferences.ScopedPreferenceStore;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class WaveformViewerPart.
|
* The Class WaveformViewerPart.
|
||||||
|
@ -190,7 +188,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
@Inject
|
@Inject
|
||||||
EPartService ePartService;
|
EPartService ePartService;
|
||||||
|
|
||||||
IPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
|
IEclipsePreferences store = null;
|
||||||
|
|
||||||
@Inject @Optional DesignBrowser designBrowser;
|
@Inject @Optional DesignBrowser designBrowser;
|
||||||
|
|
||||||
|
@ -207,7 +205,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
private Composite myParent;
|
private Composite myParent;
|
||||||
|
|
||||||
/** The files to load. */
|
/** The files to load. */
|
||||||
ArrayList<File> filesToLoad;
|
ArrayList<File> filesToLoad = new ArrayList<>();
|
||||||
|
|
||||||
/** The persisted state. */
|
/** The persisted state. */
|
||||||
Map<String, String> persistedState;
|
Map<String, String> persistedState;
|
||||||
|
@ -227,6 +225,8 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
/** The file checker. */
|
/** The file checker. */
|
||||||
IModificationChecker fileChecker;
|
IModificationChecker fileChecker;
|
||||||
|
|
||||||
|
private Boolean showHover;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the composite.
|
* Creates the composite.
|
||||||
*
|
*
|
||||||
|
@ -235,11 +235,13 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
* @param dbFactory the db factory
|
* @param dbFactory the db factory
|
||||||
*/
|
*/
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void createComposite(MPart part, Composite parent, IWaveformDbFactory dbFactory) {
|
public void createComposite(MPart part, Composite parent, IWaveformDbFactory dbFactory, @Preference(nodePath = PreferenceConstants.PREFERENCES_SCOPE) IEclipsePreferences prefs, @Preference(value = PreferenceConstants.SHOW_HOVER) Boolean hover) {
|
||||||
disposeListenerNumber += 1;
|
disposeListenerNumber += 1;
|
||||||
|
|
||||||
myPart = part;
|
myPart = part;
|
||||||
myParent = parent;
|
myParent = parent;
|
||||||
|
store=prefs;
|
||||||
|
showHover=hover;
|
||||||
database = dbFactory.getDatabase();
|
database = dbFactory.getDatabase();
|
||||||
database.addPropertyChangeListener(new PropertyChangeListener() {
|
database.addPropertyChangeListener(new PropertyChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -256,7 +258,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
});
|
});
|
||||||
waveformPane = factory.createPanel(parent);
|
waveformPane = factory.createPanel(parent);
|
||||||
waveformPane.setMaxTime(0);
|
waveformPane.setMaxTime(0);
|
||||||
|
setupColors();
|
||||||
//set selection to empty selection when opening a new waveformPane
|
//set selection to empty selection when opening a new waveformPane
|
||||||
selectionService.setSelection(new StructuredSelection());
|
selectionService.setSelection(new StructuredSelection());
|
||||||
|
|
||||||
|
@ -344,8 +346,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
});
|
});
|
||||||
|
|
||||||
zoomLevel = waveformPane.getZoomLevels();
|
zoomLevel = waveformPane.getZoomLevels();
|
||||||
setupColors();
|
checkForUpdates = store.getBoolean(PreferenceConstants.DATABASE_RELOAD, true);
|
||||||
checkForUpdates = store.getBoolean(PreferenceConstants.DATABASE_RELOAD);
|
|
||||||
filesToLoad = new ArrayList<File>();
|
filesToLoad = new ArrayList<File>();
|
||||||
persistedState = part.getPersistedState();
|
persistedState = part.getPersistedState();
|
||||||
Integer files = persistedState.containsKey(DATABASE_FILE + "S") //$NON-NLS-1$
|
Integer files = persistedState.containsKey(DATABASE_FILE + "S") //$NON-NLS-1$
|
||||||
|
@ -374,23 +375,6 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
store.addPropertyChangeListener(new IPropertyChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
|
|
||||||
if (PreferenceConstants.DATABASE_RELOAD.equals(event.getProperty())) {
|
|
||||||
checkForUpdates = (Boolean)event.getNewValue();
|
|
||||||
fileChecker = null;
|
|
||||||
if (checkForUpdates)
|
|
||||||
fileChecker = fileMonitor.addFileChangeListener(WaveformViewer.this, filesToLoad,
|
|
||||||
FILE_CHECK_INTERVAL);
|
|
||||||
else
|
|
||||||
fileMonitor.removeFileChangeListener(WaveformViewer.this);
|
|
||||||
} else if (!PreferenceConstants.SHOW_HOVER.equals(event.getProperty())){
|
|
||||||
setupColors();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
waveformPane.addDisposeListener(this);
|
waveformPane.addDisposeListener(this);
|
||||||
|
|
||||||
waveformPane.getWaveformControl().setData(Constants.HELP_PROVIDER_TAG, new ToolTipHelpTextProvider() {
|
waveformPane.getWaveformControl().setData(Constants.HELP_PROVIDER_TAG, new ToolTipHelpTextProvider() {
|
||||||
|
@ -402,7 +386,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
waveformPane.getWaveformControl().setData(Constants.CONTENT_PROVIDER_TAG, new ToolTipContentProvider() {
|
waveformPane.getWaveformControl().setData(Constants.CONTENT_PROVIDER_TAG, new ToolTipContentProvider() {
|
||||||
@Override
|
@Override
|
||||||
public boolean createContent(Composite parent, Point pt) {
|
public boolean createContent(Composite parent, Point pt) {
|
||||||
if(!store.getBoolean(PreferenceConstants.SHOW_HOVER)) return false;
|
if(!showHover) return false;
|
||||||
List<Object> res = waveformPane.getElementsAt(pt);
|
List<Object> res = waveformPane.getElementsAt(pt);
|
||||||
if(res.size()>0)
|
if(res.size()>0)
|
||||||
if(res.get(0) instanceof ITx) {
|
if(res.get(0) instanceof ITx) {
|
||||||
|
@ -472,8 +456,6 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
final Font font = new Font(Display.getCurrent(), "Terminal", 10, SWT.NORMAL);
|
final Font font = new Font(Display.getCurrent(), "Terminal", 10, SWT.NORMAL);
|
||||||
|
|
||||||
final Label label = new Label(parent, SWT.NONE);
|
final Label label = new Label(parent, SWT.NONE);
|
||||||
//label.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
|
|
||||||
//label.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
|
|
||||||
label.setText(te.waveform.getFullName());
|
label.setText(te.waveform.getFullName());
|
||||||
label.setFont(font);
|
label.setFont(font);
|
||||||
GridData labelGridData = new GridData();
|
GridData labelGridData = new GridData();
|
||||||
|
@ -487,35 +469,49 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Optional
|
||||||
|
public void reactOnPrefsChange(@Preference(nodePath = PreferenceConstants.PREFERENCES_SCOPE) IEclipsePreferences prefs) {
|
||||||
|
prefs.addPreferenceChangeListener(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Optional
|
||||||
|
public void reactOnShowHoverChange(@Preference(value = PreferenceConstants.SHOW_HOVER) Boolean hover) {
|
||||||
|
showHover=hover;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Optional
|
||||||
|
public void reactOnReloadDatabaseChange(@Preference(value = PreferenceConstants.DATABASE_RELOAD) Boolean checkForUpdates) {
|
||||||
|
if (checkForUpdates) {
|
||||||
|
fileChecker = fileMonitor.addFileChangeListener(WaveformViewer.this, filesToLoad, FILE_CHECK_INTERVAL);
|
||||||
|
} else {
|
||||||
|
fileMonitor.removeFileChangeListener(WaveformViewer.this);
|
||||||
|
fileChecker = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener#preferenceChange(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent)
|
* @see org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener#preferenceChange(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void preferenceChange(PreferenceChangeEvent event) {
|
public void preferenceChange(PreferenceChangeEvent event) {
|
||||||
InstancePreferences pref = (InstancePreferences)event.getSource();
|
if (!PreferenceConstants.DATABASE_RELOAD.equals(event.getKey()) && !PreferenceConstants.SHOW_HOVER.equals(event.getKey())){
|
||||||
if (PreferenceConstants.DATABASE_RELOAD.equals(event.getKey())) {
|
|
||||||
checkForUpdates = pref.getBoolean(PreferenceConstants.DATABASE_RELOAD, true);
|
|
||||||
fileChecker = null;
|
|
||||||
if (checkForUpdates)
|
|
||||||
fileChecker = fileMonitor.addFileChangeListener(WaveformViewer.this, filesToLoad,
|
|
||||||
FILE_CHECK_INTERVAL);
|
|
||||||
else
|
|
||||||
fileMonitor.removeFileChangeListener(this);
|
|
||||||
} else if (!PreferenceConstants.SHOW_HOVER.equals(event.getKey())){
|
|
||||||
setupColors();
|
setupColors();
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
pref.flush();
|
|
||||||
} catch (BackingStoreException e) { }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setup colors.
|
* Setup colors.
|
||||||
*/
|
*/
|
||||||
protected void setupColors() {
|
protected void setupColors() {
|
||||||
|
Preferences defaultPrefs= store.parent().parent().node("/"+DefaultScope.SCOPE+"/"+PreferenceConstants.PREFERENCES_SCOPE);
|
||||||
HashMap<WaveformColors, RGB> colorPref = new HashMap<>();
|
HashMap<WaveformColors, RGB> colorPref = new HashMap<>();
|
||||||
for (WaveformColors c : WaveformColors.values()) {
|
for (WaveformColors c : WaveformColors.values()) {
|
||||||
String prefValue = store.getString(c.name() + "_COLOR"); //$NON-NLS-1$
|
String key = c.name() + "_COLOR";
|
||||||
|
String prefValue = store.get(key, defaultPrefs.get(key, "")); //$NON-NLS-1$
|
||||||
RGB rgb = StringConverter.asRGB(prefValue);
|
RGB rgb = StringConverter.asRGB(prefValue);
|
||||||
colorPref.put(c, rgb);
|
colorPref.put(c, rgb);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,14 +12,14 @@ package com.minres.scviewer.e4.application.preferences;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
|
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
|
||||||
import org.eclipse.core.runtime.preferences.DefaultScope;
|
import org.eclipse.core.runtime.preferences.DefaultScope;
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||||
import org.eclipse.jface.resource.StringConverter;
|
import org.eclipse.jface.resource.StringConverter;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.graphics.Color;
|
import org.eclipse.swt.graphics.Color;
|
||||||
import org.eclipse.wb.swt.SWTResourceManager;
|
import org.eclipse.wb.swt.SWTResourceManager;
|
||||||
|
import org.osgi.framework.FrameworkUtil;
|
||||||
|
|
||||||
import com.minres.scviewer.database.ui.WaveformColors;
|
import com.minres.scviewer.database.ui.WaveformColors;
|
||||||
import com.opcoach.e4.preferences.ScopedPreferenceStore;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class DefaultValuesInitializer.
|
* The Class DefaultValuesInitializer.
|
||||||
|
@ -27,7 +27,7 @@ import com.opcoach.e4.preferences.ScopedPreferenceStore;
|
||||||
public class DefaultValuesInitializer extends AbstractPreferenceInitializer {
|
public class DefaultValuesInitializer extends AbstractPreferenceInitializer {
|
||||||
|
|
||||||
/** The default colors. */
|
/** The default colors. */
|
||||||
public final Color[] colors = new Color[WaveformColors.values().length];
|
public static final Color[] colors = new Color[WaveformColors.values().length];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new default values initializer.
|
* Instantiates a new default values initializer.
|
||||||
|
@ -64,21 +64,12 @@ public class DefaultValuesInitializer extends AbstractPreferenceInitializer {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void initializeDefaultPreferences() {
|
public void initializeDefaultPreferences() {
|
||||||
// IEclipsePreferences node = DefaultScope.INSTANCE.getNode(PreferenceConstants.PREFERENCES_SCOPE);
|
IEclipsePreferences store = DefaultScope.INSTANCE.getNode(FrameworkUtil.getBundle(getClass()).getSymbolicName());
|
||||||
// if (node != null)
|
|
||||||
// {
|
store.putBoolean(PreferenceConstants.DATABASE_RELOAD, true);
|
||||||
// node.putBoolean(PreferenceConstants.DATABASE_RELOAD, true);
|
store.putBoolean(PreferenceConstants.SHOW_HOVER, true);
|
||||||
// node.putBoolean(PreferenceConstants.SHOW_HOVER, true);
|
|
||||||
// for (WaveformColors c : WaveformColors.values()) {
|
|
||||||
// node.put(c.name()+"_COLOR", StringConverter.asString(colors[c.ordinal()].getRGB())); //$NON-NLS-1$
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
IPreferenceStore store = new ScopedPreferenceStore(DefaultScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
|
|
||||||
|
|
||||||
store.setDefault(PreferenceConstants.DATABASE_RELOAD, true);
|
|
||||||
store.setDefault(PreferenceConstants.SHOW_HOVER, true);
|
|
||||||
for (WaveformColors c : WaveformColors.values()) {
|
for (WaveformColors c : WaveformColors.values()) {
|
||||||
store.setDefault(c.name()+"_COLOR", StringConverter.asString(colors[c.ordinal()].getRGB())); //$NON-NLS-1$
|
store.put(c.name()+"_COLOR", StringConverter.asString(colors[c.ordinal()].getRGB())); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
package com.minres.scviewer.e4.application.preferences;
|
|
||||||
import org.eclipse.core.runtime.preferences.ConfigurationScope;
|
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
|
||||||
|
|
||||||
import com.opcoach.e4.preferences.IPreferenceStoreProvider;
|
|
||||||
import com.opcoach.e4.preferences.ScopedPreferenceStore;
|
|
||||||
|
|
||||||
public class PreferencesStoreProvider implements IPreferenceStoreProvider{
|
|
||||||
|
|
||||||
public PreferencesStoreProvider(){
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPreferenceStore getPreferenceStore() {
|
|
||||||
return new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
5
pom.xml
5
pom.xml
|
@ -20,6 +20,7 @@
|
||||||
<module>features/com.minres.scviewer.database.feature</module>
|
<module>features/com.minres.scviewer.database.feature</module>
|
||||||
<module>features/com.minres.scviewer.ui.feature</module>
|
<module>features/com.minres.scviewer.ui.feature</module>
|
||||||
<module>features/com.minres.scviewer.feature</module>
|
<module>features/com.minres.scviewer.feature</module>
|
||||||
|
<module>features/com.minres.scviewer.e4.platform.feature</module>
|
||||||
<module>features/com.minres.scviewer.e4.feature</module>
|
<module>features/com.minres.scviewer.e4.feature</module>
|
||||||
<module>p2repositories//com.minres.scviewer.updateSite</module>
|
<module>p2repositories//com.minres.scviewer.updateSite</module>
|
||||||
<module>com.minres.scviewer.e4.product</module>
|
<module>com.minres.scviewer.e4.product</module>
|
||||||
|
@ -39,7 +40,7 @@
|
||||||
<version>${tycho-version}</version>
|
<version>${tycho-version}</version>
|
||||||
<extensions>true</extensions>
|
<extensions>true</extensions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<!--
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
<artifactId>tycho-source-plugin</artifactId>
|
<artifactId>tycho-source-plugin</artifactId>
|
||||||
|
@ -55,7 +56,7 @@
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<!-- <plugin>
|
<plugin>
|
||||||
<groupId>org.eclipse.tycho.extras</groupId>
|
<groupId>org.eclipse.tycho.extras</groupId>
|
||||||
<artifactId>tycho-source-feature-plugin</artifactId>
|
<artifactId>tycho-source-feature-plugin</artifactId>
|
||||||
<version>${tycho-version}</version>
|
<version>${tycho-version}</version>
|
||||||
|
|
|
@ -72,6 +72,7 @@
|
||||||
<setEntry value="org.eclipse.equinox.app@default:default"/>
|
<setEntry value="org.eclipse.equinox.app@default:default"/>
|
||||||
<setEntry value="org.eclipse.equinox.bidi@default:default"/>
|
<setEntry value="org.eclipse.equinox.bidi@default:default"/>
|
||||||
<setEntry value="org.eclipse.equinox.common@2:true"/>
|
<setEntry value="org.eclipse.equinox.common@2:true"/>
|
||||||
|
<setEntry value="org.eclipse.equinox.ds@1:true"/>
|
||||||
<setEntry value="org.eclipse.equinox.preferences@default:default"/>
|
<setEntry value="org.eclipse.equinox.preferences@default:default"/>
|
||||||
<setEntry value="org.eclipse.equinox.registry@default:default"/>
|
<setEntry value="org.eclipse.equinox.registry@default:default"/>
|
||||||
<setEntry value="org.eclipse.equinox.util@default:default"/>
|
<setEntry value="org.eclipse.equinox.util@default:default"/>
|
||||||
|
|
Loading…
Reference in New Issue