Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
IDE-Plugin
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DP-Group 14
IDE-Plugin
Commits
ad73f445
Commit
ad73f445
authored
3 years ago
by
Smit, P.J.M. (Peter, Student M-CS)
Browse files
Options
Downloads
Patches
Plain Diff
Dotview reverts to last working parameters if current parameter set returns an error.
Also fixed bug with cancelling requests
parent
0c812cfb
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
media/dotview.css
+7
-0
7 additions, 0 deletions
media/dotview.css
media/dotview.js
+24
-31
24 additions, 31 deletions
media/dotview.js
src/dotViewer.ts
+23
-4
23 additions, 4 deletions
src/dotViewer.ts
with
54 additions
and
35 deletions
media/dotview.css
+
7
−
0
View file @
ad73f445
...
...
@@ -39,6 +39,13 @@ button {
top
:
20px
;
right
:
20px
;
}
#openOptions
i
{
transition
:
0.2s
;
}
#openOptions
i
:hover
{
transform
:
rotate
(
45deg
);
}
#paramContainer
{
...
...
This diff is collapsed.
Click to expand it.
media/dotview.js
+
24
−
31
View file @
ad73f445
...
...
@@ -30,10 +30,6 @@ window.addEventListener('message', event => {
case
'
zoomOut
'
:
zoom
(
false
);
break
;
case
'
params
'
:
event
.
data
.
params
.
forEach
(
addParameterItem
);
parameterDefinitions
=
event
.
data
.
params
;
break
;
case
'
svg
'
:
const
newSvg
=
event
.
data
.
svg
;
if
(
svgImage
===
undefined
)
{
...
...
@@ -47,34 +43,28 @@ window.addEventListener('message', event => {
svgImage
.
innerHTML
=
newSvg
.
match
(
/
(?<
=<svg
(?:
.|
\n
|
\r)
+
?
>
)(?:(?:
.|
\n
|
\r)
+
)(?=
<
\/
svg>
)
/
)[
0
];
}
break
;
case
'
allData
'
:
if
(
svgImage
===
undefined
&&
event
.
data
.
svg
)
{
// Set svg again
svgContainer
.
innerHTML
=
event
.
data
.
svg
.
replace
(
'
<svg
'
,
'
<svg id="svgImage"
'
);
svgImage
=
document
.
getElementById
(
"
svgImage
"
);
scale
=
1
;
viewBox
=
{
x
:
0
,
y
:
0
,
w
:
svgImage
.
clientWidth
,
h
:
svgImage
.
clientHeight
};
svgImage
.
setAttribute
(
'
viewBox
'
,
`0 0
${
svgImage
.
clientWidth
}
${
svgImage
.
clientHeight
}
`
);
}
case
'
params
'
:
if
(
paramList
.
innerHTML
===
''
)
{
// Set parameters again
event
.
data
.
params
.
forEach
(
addParameterItem
);
parameterDefinitions
=
event
.
data
.
params
;
// Set all the updated values
const
values
=
event
.
data
.
values
;
for
(
const
entry
of
values
)
{
const
id
=
entry
[
0
];
const
value
=
entry
[
1
];
const
valueElem
=
document
.
getElementById
(
'
value-
'
+
id
);
if
(
valueElem
.
type
===
'
checkbox
'
)
{
valueElem
.
checked
=
value
;
}
else
{
valueElem
.
value
=
value
;
}
}
break
;
case
'
paramValues
'
:
resetParams
();
// Set all the new values
const
values
=
event
.
data
.
values
;
for
(
const
entry
of
values
)
{
const
id
=
entry
[
0
];
const
value
=
entry
[
1
];
const
valueElem
=
document
.
getElementById
(
'
value-
'
+
id
);
if
(
valueElem
.
type
===
'
checkbox
'
)
{
valueElem
.
checked
=
value
;
}
else
{
valueElem
.
value
=
value
;
}
}
break
;
case
'
optionsOpen
'
:
if
(
event
.
data
.
optionsOpen
)
{
paramContainer
.
style
.
maxHeight
=
'
450px
'
;
}
else
{
...
...
@@ -102,9 +92,6 @@ function resetParams() {
break
;
}
});
vscode
.
postMessage
({
type
:
'
paramReset
'
,
});
}
}
...
...
@@ -223,7 +210,13 @@ document.getElementById("closeOptions").onclick = () => {
});
};
document
.
getElementById
(
"
revert
"
).
onclick
=
resetParams
;
document
.
getElementById
(
"
revert
"
).
onclick
=
()
=>
{
resetParams
();
vscode
.
postMessage
({
type
:
'
paramReset
'
,
});
};
...
...
This diff is collapsed.
Click to expand it.
src/dotViewer.ts
+
23
−
4
View file @
ad73f445
...
...
@@ -78,6 +78,7 @@ export namespace DotViewer {
private
lastDotString
:
string
|
undefined
;
private
lastSvgString
:
string
|
undefined
;
private
dotParameters
:
Map
<
string
,
string
>
=
new
Map
();
private
lastWorkingParameters
:
Map
<
string
,
string
>
=
new
Map
();
private
lastRunToken
:
string
|
undefined
;
private
optionsOpen
:
boolean
=
false
;
...
...
@@ -115,10 +116,19 @@ export namespace DotViewer {
LiveDotView
.
currentDotView
=
this
;
}
this
.
postMessage
({
type
:
'
allData
'
,
type
:
'
svg
'
,
svg
:
this
.
lastSvgString
,
});
this
.
postMessage
({
type
:
'
params
'
,
params
:
LiveDotView
.
availableParameters
,
});
this
.
postMessage
({
type
:
'
paramValues
'
,
values
:
Array
.
from
(
this
.
dotParameters
.
entries
()),
});
this
.
postMessage
({
type
:
'
optionsOpen
'
,
optionsOpen
:
this
.
optionsOpen
,
});
},
...
...
@@ -131,15 +141,16 @@ export namespace DotViewer {
switch
(
message
.
type
)
{
case
'
paramUpdate
'
:
this
.
dotParameters
.
set
(
message
.
id
,
message
.
value
);
this
.
updateDot
();
break
;
case
'
paramReset
'
:
this
.
dotParameters
=
new
Map
();
this
.
updateDot
();
break
;
case
'
toggleOptions
'
:
this
.
optionsOpen
=
!
this
.
optionsOpen
;
break
;
}
this
.
updateDot
();
},
undefined
,
undefined
...
...
@@ -246,6 +257,8 @@ export namespace DotViewer {
value
:
entry
[
1
]
});
}
let
dotParametersCopy
=
new
Map
(
this
.
dotParameters
);
let
runToken
=
uri
+
JSON
.
stringify
(
this
.
dotParameters
)
+
Date
.
now
();
let
jsonObject
=
{
...
...
@@ -253,7 +266,7 @@ export namespace DotViewer {
toolName
:
"
mosta (export-to-dot)
"
,
constants
:
[],
parameters
:
parameters
,
runToken
:
"
dot
"
+
runToken
runToken
:
runToken
};
vscode
.
window
.
withProgress
({
location
:
vscode
.
ProgressLocation
.
Window
,
title
:
`Loading new dot for
${
this
.
fileUri
.
path
.
split
(
"
/
"
).
pop
()}
`
},
async
(
progress
,
token
)
=>
{
await
new
Promise
<
null
>
(
async
(
resolveProgress
,
_
)
=>
{
...
...
@@ -262,6 +275,7 @@ export namespace DotViewer {
if
(
data
.
runToken
===
jsonObject
.
runToken
)
{
if
(
data
.
data
&&
data
.
data
!==
""
)
{
try
{
this
.
lastWorkingParameters
=
dotParametersCopy
;
this
.
lastDotString
=
data
.
data
;
this
.
dotToSvg
(
runToken
,
resolveProgress
);
}
catch
(
error
)
{
...
...
@@ -270,6 +284,11 @@ export namespace DotViewer {
resolveProgress
(
null
);
}
}
else
{
this
.
dotParameters
=
new
Map
(
this
.
lastWorkingParameters
);
this
.
postMessage
({
type
:
'
paramValues
'
,
values
:
Array
.
from
(
this
.
dotParameters
.
entries
())
});
resultHandlers
.
splice
(
resultHandlers
.
indexOf
(
resultHandler
),
1
);
resolveProgress
(
null
);
}
...
...
@@ -295,7 +314,7 @@ export namespace DotViewer {
private
dotToSvg
(
runToken
:
string
,
resolveProgress
:
(
value
:
any
|
PromiseLike
<
any
>
)
=>
void
)
{
let
jsonObject
=
{
dot
:
this
.
lastDotString
,
runToken
:
"
svg
"
+
runToken
runToken
:
runToken
};
if
(
this
.
lastRunToken
)
{
client
?.
sendRequest
(
"
modest/cancelRun
"
,
{
runToken
:
this
.
lastRunToken
});
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment