176 lines
8.7 KiB
HTML
176 lines
8.7 KiB
HTML
<head>
|
|
<meta charset="utf-8">
|
|
<title>Editor</title>
|
|
<!-- <script src="//unpkg.com/force-graph"></script> -->
|
|
<script src="https://unpkg.com/force-graph@1.43.0/dist/force-graph.min.js"></script>
|
|
<!-- <script src="./force-graph-master/src/force-graph.js"></script> -->
|
|
<!--<script src="../../dist/force-graph.js"></script>-->
|
|
<link rel="STYLESHEET" type="text/css" href="./editor.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div id="editor">
|
|
<div id="curtain" onclick="closeFileDisplay()"></div>
|
|
<div id="mainmenu"> <!--Horizontal bar on top for selecting highlighting modes-->
|
|
<div class="menuitem" onclick="openFileMenu(this)">
|
|
<button>File</button>
|
|
<div id="filemenu" class="submenu" onclick="event.stopPropagation()">
|
|
<div class="menutop">Undo (Ctrl + Z)</div>
|
|
<div class="menucenter">Redo (Ctrl + Y)</div>
|
|
<div class="menucenter">Save (Ctrl + S)</div>
|
|
<div class="menucenter">Save As</div>
|
|
<div class="menucenter">Export</div>
|
|
<div class="menubottom" onclick="openFileDisplay()">Open</div>
|
|
</div>
|
|
</div>
|
|
<div class="menuitem" onclick="openViewMenu(this)">
|
|
<button>View</button>
|
|
<div class="submenu" onclick="event.stopPropagation()">
|
|
<div>
|
|
<label for="actor">Highlight actor: </label>
|
|
<select name="actor" id="actor" onchange="selectActor();"></select>
|
|
</div>
|
|
<div>
|
|
<label for="viewer">Highlight viewer: </label>
|
|
<select name="viewer" id="viewer" onchange="selectViewer();"></select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="menuitem" onclick="openSettingsMenu(this)">
|
|
<button>Settings</button>
|
|
<div class="submenu">Dark mode, visualisation settings, language</div>
|
|
</div>
|
|
<div class="menuitem" onclick="openAboutMenu(this)">
|
|
<button>About</button>
|
|
<div class="submenu">Visualiser & editor for Uni2work workflows</div>
|
|
</div>
|
|
<div class="menuitem" onclick="openSearchMenu(this)">
|
|
<button>Search</button>
|
|
<div class="submenu">Search for states, edges and their contents</div>
|
|
</div>
|
|
<div class="menuitem">
|
|
<button id="filename"></button>
|
|
</div>
|
|
</div>
|
|
<div id="sidepanel"> <!--Pop-up panel on the right side for displaying/editing the selected state/action-->
|
|
<div id="sideheader">
|
|
<div id="sidecontentedge" class="sidecontenttype">
|
|
<svg height="10" width="28" xmlns="http://www.w3.org/2000/svg" onclick="deselect()">
|
|
<circle cx="4" cy="4" r="3" stroke="rgba(120, 120, 120, 0.538)" stroke-width="2" fill="none" />
|
|
<polyline points="8,4 18,4" style="fill:none;stroke:rgba(120, 120, 120, 0.538);stroke-width:2" stroke-linecap="round" />
|
|
<circle cx="22" cy="4" r="3" stroke="rgba(120, 120, 120, 0.538)" stroke-width="2" fill="none" /> />
|
|
</svg>
|
|
Edge
|
|
</div>
|
|
<div id="sidecontentnode" class="sidecontenttype">
|
|
<svg height="10" width="22" xmlns="http://www.w3.org/2000/svg" onclick="deselect()">
|
|
<polyline points="2,4 7,4" style="fill:none;stroke:rgba(120, 120, 120, 0.538);stroke-width:2" stroke-linecap="round" />
|
|
<circle cx="11" cy="4" r="3" stroke="rgba(120, 120, 120, 0.538)" stroke-width="2" fill="none" />
|
|
<polyline points="15,4 20,4" style="fill:none;stroke:rgba(120, 120, 120, 0.538);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
Node
|
|
</div>
|
|
<h1 id="sideheading">Hello</h1>
|
|
<svg class="close" height="15" width="15" xmlns="http://www.w3.org/2000/svg" onclick="deselect()">
|
|
<polyline points="1,1 14,14" style="fill:none;stroke:rgb(183, 76, 76);stroke-width:2" stroke-linecap="round" />
|
|
<polyline points="14,1 1,14" style="fill:none;stroke:rgb(183, 76, 76);stroke-width:2" stroke-linecap="round" />
|
|
X
|
|
</svg>
|
|
</div>
|
|
<div id="sidecontent"></div>
|
|
<div id="sidebuttons">
|
|
<button type="submit">Save</button>
|
|
<button type="reset" onclick="deselect()">Cancel</button>
|
|
<button type="submit" onclick="removeSelection()" style="position: absolute; right: 0px;">Delete</button>
|
|
</div>
|
|
</div>
|
|
<div id="filepanel"> <!--Pop-up panel covering the center of the screen for file interactions-->
|
|
<div id="fileheader">
|
|
<h2 id="fileheading">Hello</h2>
|
|
</div>
|
|
<div id="filecontent"></div>
|
|
<div id="filebuttons">
|
|
<button type="submit">Load</button>
|
|
<button type="reset" onclick="closeFileDisplay()">Cancel</button>
|
|
</div>
|
|
</div>
|
|
<div id="ctmenubg" class="contextmenu"> <!--Context menu displayed after right-clicking the background-->
|
|
<div class="menutop" onclick="addState()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<circle cx="5" cy="5" r="4" stroke="rgb(63, 63, 63)" stroke-width="2" fill="none" />
|
|
</svg>
|
|
New State
|
|
</div>
|
|
<div class="menubottom">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,1 9,9" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
New Edge
|
|
</div>
|
|
</div>
|
|
<div id="ctmenust" class="contextmenu"> <!--Context menu displayed after right-clicking a state-->
|
|
<div class="menutop" onclick="markEdgeFrom()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,1 9,9" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
New Edge from here
|
|
</div>
|
|
<div class="menucenter" onclick="markEdgeTo()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,9 9,1" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
New Edge to here
|
|
</div>
|
|
<div class="menucenter" onclick="rightSelect()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,9 9,1" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:4" />
|
|
<polyline points="1,9 8,2" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
Edit
|
|
</div>
|
|
<div class="menucenter">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<rect width="5" height="5" x="1" y="4" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2"/>
|
|
<polyline points="4,4 4,1 9,1 9,6 5,6" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" />
|
|
<!-- <polyline points="1,9 8,2" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" /> -->
|
|
</svg>
|
|
Duplicate
|
|
</div>
|
|
<div class="menubottom" onclick="removeRightSelection()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,1 9,9" style="fill:none;stroke:rgb(183, 76, 76);stroke-width:2" stroke-linecap="round" />
|
|
<polyline points="9,1 1,9" style="fill:none;stroke:rgb(183, 76, 76);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
Delete
|
|
</div>
|
|
</div>
|
|
<div id="ctmenued" class="contextmenu"> <!--Context menu displayed after right-clicking an edge-->
|
|
<div class="menutop" onclick="rightSelect()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,9 9,1" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:4" />
|
|
<polyline points="1,9 8,2" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
Edit
|
|
</div>
|
|
<div class="menucenter">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<rect width="5" height="5" x="1" y="4" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2"/>
|
|
<polyline points="4,4 4,1 9,1 9,6 5,6" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" />
|
|
<!-- <polyline points="1,9 8,2" style="fill:none;stroke:rgb(63, 63, 63);stroke-width:2" stroke-linecap="round" /> -->
|
|
</svg>
|
|
Duplicate
|
|
</div>
|
|
<div class="menubottom" onclick="removeRightSelection()">
|
|
<svg height="10" width="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polyline points="1,1 9,9" style="fill:none;stroke:rgb(183, 76, 76);stroke-width:2" stroke-linecap="round" />
|
|
<polyline points="9,1 1,9" style="fill:none;stroke:rgb(183, 76, 76);stroke-width:2" stroke-linecap="round" />
|
|
</svg>
|
|
Delete
|
|
</div>
|
|
</div>
|
|
<div id="graph"></div> <!--The graph canvas-->
|
|
</div>
|
|
|
|
<script src="./workflow.js"></script>
|
|
<script src="./editor.js"></script>
|
|
</body> |