Skip to content

Commit

Permalink
applied feature to all documentation elements
Browse files Browse the repository at this point in the history
Issue imixs#246
rsoika committed May 15, 2023
1 parent 98e2adb commit e1cc0a5
Showing 13 changed files with 85 additions and 59 deletions.
Original file line number Diff line number Diff line change
@@ -79,7 +79,9 @@ export const TextFileEditor = ({
)}
</span>
<span className={'file-selector'}>
<label>File Link: {(data.startsWith('file://'))?'ACTIVE':'NONE'}</label>
<label
title='Link the content to a filename starting with file://'
>File Link: {(data.startsWith('file://'))?'ACTIVE':'NONE'}</label>
</span>
</label>

Original file line number Diff line number Diff line change
@@ -15,6 +15,8 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import javax.json.JsonArray;
@@ -190,4 +192,28 @@ Set<Element> synchronizeEventDefinitions(final String definitionName, final Even
}
return eventDefinitions;
}

/**
* Helper method that returns a Multiline Option for the JSONForms UI Schema
*
* @return
*/
Map<String, String> getMultilineOption() {
Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
return multilineOption;
}

/**
* Helper method that returns a textFileEditor Option for the JSONForms UI
* Schema
*
* @return
*/
Map<String, String> getFileEditorOption() {
// custom fileEditor...
Map<String, String> fileEditor = new HashMap<>();
fileEditor.put("format", "textFileEditor");
return fileEditor;
}
}
Original file line number Diff line number Diff line change
@@ -15,9 +15,6 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;

import javax.json.JsonObject;

import org.eclipse.glsp.graph.GModelElement;
@@ -77,14 +74,12 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addProperty("name", "string", null). //
addProperty("documentation", "string", null);

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.HORIZONTAL). //
addElements("name"). //
addLayout(Layout.VERTICAL). //
addElement("documentation", "Data", multilineOption);
addElement("documentation", "Data", this.getFileEditorOption());

}

@@ -103,5 +98,6 @@ public void updatePropertiesData(final JsonObject json, final String category, f
updateNameProperty(json, bpmnElement, gNodeElement);
// update attributes and tags
bpmnElement.setDocumentation(json.getString("documentation", ""));

}
}
Original file line number Diff line number Diff line change
@@ -15,9 +15,6 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;

import javax.json.JsonObject;

import org.apache.logging.log4j.LogManager;
@@ -86,14 +83,12 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addProperty("name", "string", null). //
addProperty("documentation", "string", null);

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.HORIZONTAL). //
addElements("name"). //
addLayout(Layout.VERTICAL). //
addElement("documentation", "Documentation", multilineOption);
addElement("documentation", "Documentation", this.getFileEditorOption());

}

Original file line number Diff line number Diff line change
@@ -15,9 +15,6 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;

import javax.json.JsonObject;

import org.eclipse.glsp.graph.GModelElement;
@@ -92,13 +89,11 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addProperty("name", "string", null). //
addProperty("documentation", "string", documentation);

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.VERTICAL). //
addElements("name"). //
addElement("documentation", "Documentation", multilineOption);
addElement("documentation", "Documentation", this.getFileEditorOption());

}

Original file line number Diff line number Diff line change
@@ -81,9 +81,6 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addProperty("documentation", "string", documentation). //
addProperty("gatewaydirection", "string", null, gatewayDirections);

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");

Map<String, String> radioOption = new HashMap<>();
radioOption.put("format", "radio");

@@ -93,7 +90,7 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addElements("name"). //
addElement("gatewaydirection", "Direction", radioOption). //
addLayout(Layout.VERTICAL). //
addElement("documentation", "Documentation", multilineOption);
addElement("documentation", "Documentation", this.getFileEditorOption());

}

Original file line number Diff line number Diff line change
@@ -15,9 +15,6 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;

import javax.json.JsonObject;

import org.eclipse.glsp.graph.GModelElement;
@@ -77,14 +74,12 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addProperty("name", "string", null). //
addProperty("documentation", "string", null);

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.HORIZONTAL). //
addElements("name"). //
addLayout(Layout.VERTICAL). //
addElement("documentation", "Data", multilineOption);
addElement("documentation", "Data", this.getFileEditorOption());

}

Original file line number Diff line number Diff line change
@@ -96,14 +96,12 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
// addProperty("execution", "string", null). //
addProperty("documentation", "string", "Participant description.");

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.HORIZONTAL). //
addElements("name"). //
addLayout(Layout.VERTICAL). //
addElement("documentation", "Documentation", multilineOption);
addElement("documentation", "Documentation", this.getFileEditorOption());

// LaneSet
addLaneSetProperties((Participant) bpmnElement, dataBuilder, schemaBuilder, uiSchemaBuilder);
Original file line number Diff line number Diff line change
@@ -15,15 +15,14 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import javax.json.JsonObject;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.eclipse.glsp.graph.GModelElement;
import org.openbpmn.bpmn.BPMNNS;
import org.openbpmn.bpmn.BPMNTypes;
import org.openbpmn.bpmn.elements.SequenceFlow;
import org.openbpmn.bpmn.elements.core.BPMNElement;
@@ -33,6 +32,7 @@
import org.openbpmn.glsp.jsonforms.UISchemaBuilder;
import org.openbpmn.glsp.jsonforms.UISchemaBuilder.Layout;
import org.openbpmn.glsp.model.BPMNGModelState;
import org.w3c.dom.Element;

import com.google.inject.Inject;

@@ -107,12 +107,10 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
schemaBuilder. //
addProperty("conditionExpression", "string", description); //

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("Condition"). //
addLayout(Layout.VERTICAL). //
addElement("conditionExpression", "Expression", multilineOption);
addElement("conditionExpression", "Expression", this.getFileEditorOption());

}

@@ -144,6 +142,15 @@ public void updatePropertiesData(final JsonObject json, final String category, f
String expression = json.getString(feature);
stateUpdate = sequenceFlow.setConditionExpression(expression);
conditionsFound = true;
// if we have a file:// link than we create an additional open-bpmn attribute
Element childElement = sequenceFlow.getChildNode(BPMNNS.BPMN2, "conditionExpression");
if (childElement != null) {
if (expression.startsWith("file://")) {
childElement.setAttribute("open-bpmn:file-link", expression);
} else {
childElement.removeAttribute("open-bpmn:file-link");
}
}
continue;
}
}
Original file line number Diff line number Diff line change
@@ -15,9 +15,6 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;

import javax.json.JsonObject;

import org.eclipse.glsp.graph.GModelElement;
@@ -77,20 +74,14 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
// addProperty("execution", "string", null). //
addProperty("documentation", "string", documentation);

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.HORIZONTAL). //
addElements("name"). //
addLayout(Layout.VERTICAL). //
addElement("documentation", "Documentation", multilineOption);
addElement("documentation", "Documentation", this.getFileEditorOption());

// Script-Task?
// custom fileEditor...
Map<String, String> fileEditor = new HashMap<>();
fileEditor.put("format", "textFileEditor");

Activity taskElement = (Activity) bpmnElement;
if (BPMNTypes.SCRIPT_TASK.equals(taskElement.getType())) {
dataBuilder //
@@ -106,11 +97,8 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addCategory("Script"). //
addLayout(Layout.VERTICAL). //
addElements("scriptformat"). //
// TEST
// addElement("script", "Script", multilineOption); //
//
addElement("script", "Script-Test", fileEditor);
// TEST END
addElement("script", "Script", this.getFileEditorOption());

}
}

@@ -135,7 +123,7 @@ public void updatePropertiesData(final JsonObject json, final String category, f
String dataValue = json.getString("script", "");
bpmnElement.setAttribute("scriptFormat", json.getString("scriptformat", ""));
Element childElement = bpmnElement.setChildNodeContent(BPMNNS.BPMN2, "script", dataValue, true);
// if we have a file:// link than we create an open-bpmn attribute
// if we have a file:// link than we create an additional open-bpmn attribute
if (dataValue.startsWith("file://")) {
childElement.setAttribute("open-bpmn:file-link", dataValue);
} else {
Original file line number Diff line number Diff line change
@@ -15,8 +15,6 @@
********************************************************************************/
package org.openbpmn.extension;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

import javax.json.JsonObject;
@@ -77,14 +75,12 @@ public void buildPropertiesForm(final BPMNElement bpmnElement, final DataBuilder
addProperty("documentation", "string", null). //
addProperty("text", "string", "Content");

Map<String, String> multilineOption = new HashMap<>();
multilineOption.put("multi", "true");
uiSchemaBuilder. //
addCategory("General"). //
addLayout(Layout.VERTICAL). //
addElement("text", "Text", multilineOption). //
addElement("text", "Text", this.getFileEditorOption()). //
addElement("textFormat", "textformat", null). //
addElement("documentation", "Documentation", multilineOption);
addElement("documentation", "Documentation", this.getFileEditorOption());

}

Original file line number Diff line number Diff line change
@@ -56,6 +56,16 @@ public String getText() {
*/
public void setText(String content) {
this.setChildNodeContent(BPMNNS.BPMN2, "text", content, true);

// if we have a file:// link than we create an additional open-bpmn attribute
Element childElement = this.getChildNode(BPMNNS.BPMN2, "text");
if (childElement != null) {
if (content.startsWith("file://")) {
childElement.setAttribute("open-bpmn:file-link", content);
} else {
childElement.removeAttribute("open-bpmn:file-link");
}
}
}

/**
Original file line number Diff line number Diff line change
@@ -125,6 +125,16 @@ public String getDocumentation() {
*/
public void setDocumentation(String content) {
this.setChildNodeContent(BPMNNS.BPMN2, "documentation", content, true);

// if we have a file:// link than we create an additional open-bpmn attribute
Element childElement = this.getChildNode(BPMNNS.BPMN2, "documentation");
if (childElement != null) {
if (content.startsWith("file://")) {
childElement.setAttribute("open-bpmn:file-link", content);
} else {
childElement.removeAttribute("open-bpmn:file-link");
}
}
}

/**
@@ -367,6 +377,17 @@ public Element getElementNode() {
return elementNode;
}

/**
* Returns the corresponding child element node.
*
* If no child node with the name exists, the method return null.
*
* @return
*/
public Element getChildNode(BPMNNS ns, String nodeName) {
return this.loadChildNode(ns, nodeName);
}

/**
* Returns a map with all attributes of the Element node.
*

0 comments on commit e1cc0a5

Please sign in to comment.