Skip to content
Snippets Groups Projects
Commit 878ae84f authored by Adam Procter's avatar Adam Procter
Browse files

added Nodes to Sandbox

parent bacd977b
No related branches found
No related tags found
No related merge requests found
...@@ -22,11 +22,11 @@ import * as allModes from '@/experimental/modes' ...@@ -22,11 +22,11 @@ import * as allModes from '@/experimental/modes'
export default { export default {
computed: { computed: {
...mapState({ ...mapState({
mode: state => state.ui.mode mode: (state) => state.ui.mode,
}), }),
...mapGetters({ ...mapGetters({
activeMode: 'ui/activeMode' activeMode: 'ui/activeMode',
}) }),
}, },
methods: { methods: {
setMode(mode) { setMode(mode) {
...@@ -34,13 +34,13 @@ export default { ...@@ -34,13 +34,13 @@ export default {
}, },
isActive(mode) { isActive(mode) {
return this.mode === mode.name return this.mode === mode.name
} },
}, },
data() { data() {
return { return {
allModes allModes,
} }
} },
} }
</script> </script>
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
v-bind:style="{ v-bind:style="{
width: `${width}px`, width: `${width}px`,
height: `${height}px`, height: `${height}px`,
transform: `translate(${translation.x}px, ${translation.y}px) scale(${scale})` transform: `translate(${translation.x}px, ${translation.y}px) scale(${scale})`,
}" }"
> >
{{ JSON.stringify(interaction) }} {{ JSON.stringify(interaction) }}
...@@ -65,27 +65,27 @@ import { constrainTranslation } from '@/experimental/utils/numbers' ...@@ -65,27 +65,27 @@ import { constrainTranslation } from '@/experimental/utils/numbers'
import { import {
getNormalisedInteraction, getNormalisedInteraction,
changeViewFromWheelEvent, changeViewFromWheelEvent,
changeViewFromMultiTouchEvent changeViewFromMultiTouchEvent,
} from '@/experimental/utils/view' } from '@/experimental/utils/view'
export default { export default {
name: 'map-interaction', name: 'map-interaction',
data() { data() {
return { return {
shouldPreventTouchEndDefault: false shouldPreventTouchEndDefault: false,
} }
}, },
computed: { computed: {
...mapState({ ...mapState({
interaction: state => state.ui.interaction interaction: (state) => state.ui.interaction,
}) }),
}, },
props: { props: {
translationBounds: { translationBounds: {
type: Object, type: Object,
default() { default() {
return { xMin: -500, xMax: 500, yMin: -500, yMax: 500 } return { xMin: -500, xMax: 500, yMin: -500, yMax: 500 }
} },
}, },
translation: Object, translation: Object,
scale: Number, scale: Number,
...@@ -93,12 +93,12 @@ export default { ...@@ -93,12 +93,12 @@ export default {
height: Number, height: Number,
minScale: { minScale: {
type: Number, type: Number,
default: 0.3 default: 0.3,
}, },
maxScale: { maxScale: {
type: Number, type: Number,
default: 2.0 default: 2.0,
} },
}, },
methods: { methods: {
handleEventCapture(e) { handleEventCapture(e) {
...@@ -156,7 +156,7 @@ export default { ...@@ -156,7 +156,7 @@ export default {
e.preventDefault() e.preventDefault()
e.stopPropagation() e.stopPropagation()
console.log(e) // console.log(e)
this.handleWheel(e) this.handleWheel(e)
}, },
...@@ -168,10 +168,10 @@ export default { ...@@ -168,10 +168,10 @@ export default {
const dragY = pointer.clientY - startPointer.clientY const dragY = pointer.clientY - startPointer.clientY
const newTranslation = { const newTranslation = {
x: translation.x + dragX, x: translation.x + dragX,
y: translation.y + dragY y: translation.y + dragY,
} }
console.log(dragX, dragY) //console.log(dragX, dragY)
this.$store.commit( this.$store.commit(
'ui/setTranslation', 'ui/setTranslation',
...@@ -188,7 +188,7 @@ export default { ...@@ -188,7 +188,7 @@ export default {
this.$store.commit('ui/setOrigin', { this.$store.commit('ui/setOrigin', {
points, points,
scale: this.scale, scale: this.scale,
translation: this.translation translation: this.translation,
}) })
}, },
handleWheel(e) { handleWheel(e) {
...@@ -215,7 +215,7 @@ export default { ...@@ -215,7 +215,7 @@ export default {
'ui/setTranslation', 'ui/setTranslation',
constrainTranslation(newTranslation, this.translationBounds) constrainTranslation(newTranslation, this.translationBounds)
) )
} },
} },
} }
</script> </script>
...@@ -10,35 +10,35 @@ const store = { ...@@ -10,35 +10,35 @@ const store = {
x: 10, x: 10,
y: 10, y: 10,
width: 100, width: 100,
height: 200 height: 200,
} },
}, },
selection: { selection: {
links: [], links: [],
nodes: [] nodes: [],
}, },
mode: 'move', mode: 'move',
scale: 1, scale: 1,
translation: { translation: {
x: 0, x: 0,
y: 0 y: 0,
} },
}, },
getters: { getters: {
isScaled: state => !(state.scale === 1.0), isScaled: (state) => !(state.scale === 1.0),
isTranslated: state => isTranslated: (state) =>
!(state.translation.x === 0 && state.translation.y === 0), !(state.translation.x === 0 && state.translation.y === 0),
activeMode: state => { activeMode: (state) => {
return allModes[state.mode] return allModes[state.mode]
}, },
modeContainerStyle: state => { modeContainerStyle: (state) => {
return { return {
cursor: allModes[state.mode].cursor || 'initial' cursor: allModes[state.mode].cursor || 'initial',
} }
}, },
scalePercentage: state => { scalePercentage: (state) => {
return `${(state.scale * 100).toFixed(0)}%` return `${(state.scale * 100).toFixed(0)}%`
} },
}, },
mutations: { mutations: {
setOrigin(state, origin) { setOrigin(state, origin) {
...@@ -50,6 +50,7 @@ const store = { ...@@ -50,6 +50,7 @@ const store = {
setMode(state, mode) { setMode(state, mode) {
if (allModes[mode]) { if (allModes[mode]) {
state.mode = mode state.mode = mode
console.log(mode)
} else { } else {
console.warn(`${mode} is not a valid mode`) console.warn(`${mode} is not a valid mode`)
} }
...@@ -59,8 +60,8 @@ const store = { ...@@ -59,8 +60,8 @@ const store = {
}, },
setTranslation(state, { x, y }) { setTranslation(state, { x, y }) {
state.translation = { x, y } state.translation = { x, y }
} },
} },
} }
export default store export default store
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
/> />
<NodesLayer <NodesLayer
@editTrue="e => editTrue(e)" @editTrue="(e) => editTrue(e)"
v-for="value in myNodes" v-for="value in myNodes"
v-bind:key="value.node_id" v-bind:key="value.node_id"
v-bind:nodeid="value.node_id" v-bind:nodeid="value.node_id"
...@@ -72,11 +72,11 @@ export default { ...@@ -72,11 +72,11 @@ export default {
} }
}, },
data: function() { data: function () {
return { return {
clientset: false, clientset: false,
listview: false, listview: false,
offline: false offline: false,
} }
}, },
...@@ -86,12 +86,12 @@ export default { ...@@ -86,12 +86,12 @@ export default {
OtherNodeslayer, OtherNodeslayer,
ListLayer, ListLayer,
OtherListlayer, OtherListlayer,
ControlsLayer ControlsLayer,
}, },
computed: mapState({ computed: mapState({
myNodes: state => state.myNodes, myNodes: (state) => state.myNodes,
otherNodes: state => state.otherNodes, otherNodes: (state) => state.otherNodes,
shortcutstate: state => state.shortcutstate shortcutstate: (state) => state.shortcutstate,
}), }),
methods: { methods: {
clientAdded() { clientAdded() {
...@@ -120,8 +120,8 @@ export default { ...@@ -120,8 +120,8 @@ export default {
}, },
onlineTriggered() { onlineTriggered() {
this.offline = false this.offline = false
} },
} },
} }
</script> </script>
......
...@@ -7,6 +7,19 @@ ...@@ -7,6 +7,19 @@
v-bind:translation="translation" v-bind:translation="translation"
> >
<h1>Nodes</h1> <h1>Nodes</h1>
<OtherNodeslayer
v-for="value in otherNodes"
v-bind:key="value.node_id"
v-bind:nodeid="value.node_id"
v-bind:nodetext="value.node_text"
/>
<NodesLayer
v-for="value in myNodes"
v-bind:key="value.node_id"
v-bind:nodeid="value.node_id"
v-bind:nodetext="value.node_text"
/>
</PanZoomContainer> </PanZoomContainer>
<SelectionLayer <SelectionLayer
v-if="domContainerReady" v-if="domContainerReady"
...@@ -21,6 +34,8 @@ ...@@ -21,6 +34,8 @@
<script> <script>
import PanZoomContainer from '@/experimental/PanZoomContainer' import PanZoomContainer from '@/experimental/PanZoomContainer'
import NodesLayer from '@/components/NodesLayer'
import OtherNodeslayer from '@/components/OtherNodeslayer.vue'
import ModeToolbar from '@/experimental/ModeToolbar' import ModeToolbar from '@/experimental/ModeToolbar'
import ViewToolbar from '@/experimental/ViewToolbar' import ViewToolbar from '@/experimental/ViewToolbar'
import SelectionLayer from '@/experimental/layers/SelectionLayer' import SelectionLayer from '@/experimental/layers/SelectionLayer'
...@@ -28,12 +43,12 @@ import { mapGetters, mapState } from 'vuex' ...@@ -28,12 +43,12 @@ import { mapGetters, mapState } from 'vuex'
export default { export default {
name: 'Sandbox', name: 'Sandbox',
data: function() { data: function () {
return { return {
elementWidth: undefined, elementWidth: undefined,
elementHeight: undefined, elementHeight: undefined,
width: 2000, width: 2000,
height: 2000 height: 2000,
} }
}, },
computed: { computed: {
...@@ -41,14 +56,16 @@ export default { ...@@ -41,14 +56,16 @@ export default {
return !!this.elementWidth && !!this.elementHeight return !!this.elementWidth && !!this.elementHeight
}, },
...mapState({ ...mapState({
interaction: state => state.ui.interaction, interaction: (state) => state.ui.interaction,
scale: state => state.ui.scale, scale: (state) => state.ui.scale,
translation: state => state.ui.translation translation: (state) => state.ui.translation,
myNodes: (state) => state.myNodes,
otherNodes: (state) => state.otherNodes,
}), }),
...mapGetters({ ...mapGetters({
activeMode: 'ui/activeMode', activeMode: 'ui/activeMode',
modeContainerStyle: 'ui/modeContainerStyle' modeContainerStyle: 'ui/modeContainerStyle',
}) }),
}, },
mounted() { mounted() {
window.addEventListener('resize', this.handleResize) window.addEventListener('resize', this.handleResize)
...@@ -62,14 +79,16 @@ export default { ...@@ -62,14 +79,16 @@ export default {
const { offsetWidth, offsetHeight } = this.$refs.container const { offsetWidth, offsetHeight } = this.$refs.container
this.elementWidth = offsetWidth this.elementWidth = offsetWidth
this.elementHeight = offsetHeight this.elementHeight = offsetHeight
} },
}, },
components: { components: {
ModeToolbar, ModeToolbar,
ViewToolbar, ViewToolbar,
PanZoomContainer, PanZoomContainer,
SelectionLayer SelectionLayer,
} NodesLayer,
OtherNodeslayer,
},
} }
</script> </script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment