Skip to content
Snippets Groups Projects
Commit ae38f82d authored by Nelson Tavares de Sousa's avatar Nelson Tavares de Sousa
Browse files

some refactoring

parent 4d6787c3
Branches
No related tags found
No related merge requests found
Pipeline #
Showing
with 202 additions and 223 deletions
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="output" path="bin"/>
</classpath>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.source=1.8
......@@ -23,7 +23,8 @@ Require-Bundle: javax.inject,
org.eclipse.ui.views.log,
org.eclipse.core.resources,
org.eclipse.emf,
org.eclipse.xtext.ui
org.eclipse.xtext.ui,
teetime.configuration.dsl;bundle-version="0.1.0"
Import-Package: org.eclipse.xtext.ui.editor.utils,
teetime.configuration.dsl.config
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
......@@ -2,12 +2,10 @@ package teetime.configuration.dsl.klighd
import de.cau.cs.kieler.core.kgraph.KEdge
import de.cau.cs.kieler.core.kgraph.KNode
import de.cau.cs.kieler.core.krendering.KRenderingFactory
import de.cau.cs.kieler.core.krendering.LineStyle
import de.cau.cs.kieler.core.krendering.extensions.KColorExtensions
import de.cau.cs.kieler.core.krendering.extensions.KContainerRenderingExtensions
import de.cau.cs.kieler.core.krendering.extensions.KEdgeExtensions
import de.cau.cs.kieler.core.krendering.extensions.KLabelExtensions
import de.cau.cs.kieler.core.krendering.extensions.KNodeExtensions
import de.cau.cs.kieler.core.krendering.extensions.KPolylineExtensions
import de.cau.cs.kieler.core.krendering.extensions.KPortExtensions
......@@ -22,8 +20,10 @@ import de.cau.cs.kieler.klighd.util.KlighdProperties
import java.util.List
import javax.inject.Inject
import teetime.configuration.dsl.config.Configuration
import teetime.configuration.dsl.config.Stage
import teetime.configuration.dsl.config.Connection
import teetime.configuration.dsl.config.Stage
import teetime.configuration.dsl.util.ConfigExtensions
import teetime.configuration.dsl.util.Pipe
class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configuration> {
......@@ -34,6 +34,7 @@ class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configurati
@Inject extension KContainerRenderingExtensions
@Inject extension KPolylineExtensions
@Inject extension KColorExtensions
@Inject extension ConfigExtensions
private static val SynthesisOption SHOW_STATE = SynthesisOption::createCheckOption("Stage state", false)
private static val SynthesisOption SHOW_THREADS = SynthesisOption::createCheckOption("Thread assignment", false)
......@@ -57,7 +58,7 @@ class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configurati
val stages = model.elements.filter(typeof(Stage))
for (stage : stages) {
if (stage.inputPorts.size == 0 || stage.isActive) {
if (stage.getInputPorts(pipes).size == 0 || stage.isActive) {
color = createThreadNode(root)
paintStages(stage, color)
}
......@@ -78,21 +79,7 @@ class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configurati
return root;
}
private def List<Pipe> connections2Pipes(Iterable<Connection> conns) {
val tempPipes = <Pipe>newLinkedList()
for (co : conns) {
if (co.middleStages.size == 0) {
tempPipes.add(new Pipe(co.startStage.startStageId, co.finalStage.startStageId))
} else {
tempPipes.add(new Pipe(co.startStage.startStageId, co.middleStages.head.startStageId))
for (i : 1 ..< co.middleStages.size) {
tempPipes.add(new Pipe(co.middleStages.get(i-1).startStageId, co.middleStages.get(i).startStageId))
}
tempPipes.add(new Pipe(co.middleStages.last.startStageId, co.finalStage.startStageId))
}
}
return tempPipes
}
private def create node : stage.createNode() transformStage(Stage stage, Configuration model) {
node.associateWith(stage);
......@@ -101,19 +88,18 @@ class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configurati
val text = it.addText(stage.name).associateWith(stage.name).setSurroundingSpace(8, 0, 8, 0) => [
it.setProperty(KlighdProperties.VISIBILITY_SCALE_LOWER_BOUND, 0.70);
]
if (!(stage.isActive || stage.inputPorts.size == 0) && SHOW_STATE.booleanValue) {
if (!(stage.isActive || stage.getInputPorts(pipes).size == 0) && SHOW_STATE.booleanValue) {
it.lineStyle = LineStyle::DASH
// it.lineWidth = 2
// text.foreground = "gray40".color
text.fontItalic = true
// foreground = "gray40".color
}
if (falseStages.contains(stage)) {
it.background = "#FF5555".color
it.background = "#EF5350".color
} else if ((stage.getOutputPorts(pipes).size == 0 || !stage.active) && stage.getInputPorts(pipes).size == 0){
it.background = "#FFEE58".color
}
]
node.setMinimalNodeSize(100, 50)
val outgoingPipes = stage.outputPorts
val outgoingPipes = stage.getOutputPorts(pipes)
node.outgoingEdges.addAll(outgoingPipes.map[transformPipe(model)])
}
......@@ -176,7 +162,7 @@ class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configurati
return
} else {
colorings.put(stage, color)
stage.outputPorts.forEach [
stage.getOutputPorts(pipes).forEach [
if (!it.targetStage.isActive) {
paintStages(it.targetStage, color)
}
......@@ -190,16 +176,6 @@ class ConfigurationDiagramSynthesis extends AbstractDiagramSynthesis<Configurati
return colorings.get(first) != colorings.get(second)
}
private def List<Pipe> outputPorts(Stage stage) {
val result = <Pipe>newLinkedList()
result.addAll(pipes.filter[sourceStage == stage])
return result
}
private def List<Pipe> inputPorts(Stage stage) {
val result = <Pipe>newLinkedList()
result.addAll(pipes.filter[targetStage == stage])
return result
}
}
No preview for this file type
......@@ -26,5 +26,6 @@ Export-Package: teetime.configuration.dsl,
teetime.configuration.dsl.parser.antlr.internal,
teetime.configuration.dsl.validation,
teetime.configuration.dsl.config,
teetime.configuration.dsl.util,
teetime.configuration.dsl.serializer
Import-Package: org.apache.log4j
package teetime.configuration.dsl.util
import java.util.List
import teetime.configuration.dsl.config.Connection
import teetime.configuration.dsl.config.Stage
class ConfigExtensions {
def List<Pipe> getOutputPorts(Stage stage, List<Pipe> pipes) {
val result = <Pipe>newLinkedList()
result.addAll(pipes.filter[sourceStage == stage])
return result
}
def List<Pipe> getInputPorts(Stage stage, List<Pipe> pipes) {
val result = <Pipe>newLinkedList()
result.addAll(pipes.filter[targetStage == stage])
return result
}
def List<Pipe> connections2Pipes(Iterable<Connection> conns) {
val tempPipes = <Pipe>newLinkedList()
for (co : conns) {
if (co.middleStages.size == 0) {
tempPipes.add(new Pipe(co.startStage.startStageId, co.finalStage.startStageId))
} else {
tempPipes.add(new Pipe(co.startStage.startStageId, co.middleStages.head.startStageId))
for (i : 1 ..< co.middleStages.size) {
tempPipes.add(new Pipe(co.middleStages.get(i-1).startStageId, co.middleStages.get(i).startStageId))
}
tempPipes.add(new Pipe(co.middleStages.last.startStageId, co.finalStage.startStageId))
}
}
return tempPipes
}
}
\ No newline at end of file
package teetime.configuration.dsl.klighd;
package teetime.configuration.dsl.util;
import teetime.configuration.dsl.config.Stage;
class Pipe {
Stage sourceStage;
Stage targetStage;
public class Pipe {
private Stage sourceStage;
private Stage targetStage;
Pipe(Stage sourceStage, Stage targetStage){
public Pipe(Stage sourceStage, Stage targetStage){
this.sourceStage = sourceStage;
this.targetStage = targetStage;
}
public Stage getSourceStage() {
return sourceStage;
}
public Stage getTargetStage() {
return targetStage;
}
}
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment