Unjoin -> Disconnect

This commit is contained in:
John Firebaugh
2013-02-01 15:45:45 -05:00
parent 50c79d13fc
commit e1d5a0cb03
10 changed files with 45 additions and 45 deletions
+1 -1
View File
@@ -79,13 +79,13 @@
<script src='js/id/actions/change_tags.js'></script>
<script src='js/id/actions/delete_node.js'></script>
<script src="js/id/actions/delete_way.js"></script>
<script src='js/id/actions/disconnect.js'></script>
<script src='js/id/actions/move_node.js'></script>
<script src='js/id/actions/move_way.js'></script>
<script src='js/id/actions/circularize.js'></script>
<script src='js/id/actions/noop.js'></script>
<script src='js/id/actions/reverse_way.js'></script>
<script src='js/id/actions/split_way.js'></script>
<script src='js/id/actions/unjoin_node.js'></script>
<script src='js/id/behavior.js'></script>
<script src='js/id/behavior/add_way.js'></script>
+1 -1
View File
@@ -476,7 +476,7 @@ button[disabled] .icon.nearby { background-position: -340px -40px;}
.icon-operation-circularize { background-position: -20px -140px;}
.icon-operation-straighten { background-position: -40px -140px;}
.icon-operation-split { background-position: -60px -140px;}
.icon-operation-unjoin { background-position: -80px -140px;}
.icon-operation-disconnect { background-position: -80px -140px;}
.icon-operation-reverse { background-position: -100px -140px;}
.icon-operation-move { background-position: -120px -140px;}
.icon-operation-merge { background-position: -140px -140px;}
+2 -2
View File
@@ -80,13 +80,13 @@
<script src='js/id/actions/delete_node.js'></script>
<script src="js/id/actions/delete_relation.js"></script>
<script src="js/id/actions/delete_way.js"></script>
<script src='js/id/actions/disconnect.js'></script>
<script src='js/id/actions/move_node.js'></script>
<script src='js/id/actions/move_way.js'></script>
<script src='js/id/actions/circularize.js'></script>
<script src='js/id/actions/noop.js'></script>
<script src='js/id/actions/reverse_way.js'></script>
<script src='js/id/actions/split_way.js'></script>
<script src='js/id/actions/unjoin_node.js'></script>
<script src='js/id/behavior.js'></script>
<script src='js/id/behavior/add_way.js'></script>
@@ -112,10 +112,10 @@
<script src='js/id/operations.js'></script>
<script src='js/id/operations/circularize.js'></script>
<script src='js/id/operations/delete.js'></script>
<script src='js/id/operations/disconnect.js'></script>
<script src='js/id/operations/move.js'></script>
<script src='js/id/operations/reverse.js'></script>
<script src='js/id/operations/split.js'></script>
<script src='js/id/operations/unjoin.js'></script>
<script src='js/id/graph/entity.js'></script>
<script src='js/id/graph/graph.js'></script>
@@ -1,4 +1,4 @@
// Unjoin the ways at the given node.
// Disconect the ways at the given node.
//
// For testing convenience, accepts an ID to assign to the (first) new node.
// Normally, this will be undefined and the way will automatically
@@ -8,7 +8,7 @@
// https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/UnjoinNodeAction.as
// https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/UnGlueAction.java
//
iD.actions.UnjoinNode = function(nodeId, newNodeId) {
iD.actions.Disconnect = function(nodeId, newNodeId) {
var action = function(graph) {
if (!action.enabled(graph))
return graph;
+24
View File
@@ -0,0 +1,24 @@
iD.operations.Disconnect = function(selection, context) {
var entityId = selection[0],
action = iD.actions.Disconnect(entityId);
var operation = function() {
context.perform(action, t('operations.disconnect.annotation'));
};
operation.available = function() {
return selection.length === 1 &&
context.geometry(entityId) === 'vertex';
};
operation.enabled = function() {
return action.enabled(context.graph());
};
operation.id = "disconnect";
operation.key = t('operations.disconnect.key');
operation.title = t('operations.disconnect.title');
operation.description = t('operations.disconnect.description');
return operation;
};
-24
View File
@@ -1,24 +0,0 @@
iD.operations.Unjoin = function(selection, context) {
var entityId = selection[0],
action = iD.actions.UnjoinNode(entityId);
var operation = function() {
context.perform(action, 'Unjoined lines.');
};
operation.available = function() {
return selection.length === 1 &&
context.geometry(entityId) === 'vertex';
};
operation.enabled = function() {
return action.enabled(context.graph());
};
operation.id = "unjoin";
operation.key = t('operations.unjoin.key');
operation.title = t('operations.unjoin.title');
operation.description = t('operations.unjoin.description');
return operation;
};
+6 -6
View File
@@ -77,6 +77,12 @@ locale.en = {
multiple: "Deleted {n} objects."
}
},
disconnect: {
title: "Disconnect",
description: "Disconnect these ways from each other.",
key: "D",
annotation: "Disconnected ways."
},
move: {
title: "Move",
description: "Move this to a different location.",
@@ -99,12 +105,6 @@ locale.en = {
description: "Split this into two ways at this point.",
key: "X",
annotation: "Split a way."
},
unjoin: {
title: "Unjoin",
description: "Disconnect these ways from each other.",
key: "⇧-J",
annotation: "Unjoined ways."
}
},
+3 -3
View File
@@ -77,12 +77,12 @@
<script src="../js/id/actions/delete_node.js"></script>
<script src="../js/id/actions/delete_relation.js"></script>
<script src="../js/id/actions/delete_way.js"></script>
<script src='../js/id/actions/disconnect.js'></script>
<script src='../js/id/actions/move_node.js'></script>
<script src='../js/id/actions/move_way.js'></script>
<script src='../js/id/actions/noop.js'></script>
<script src='../js/id/actions/reverse_way.js'></script>
<script src='../js/id/actions/split_way.js'></script>
<script src='../js/id/actions/unjoin_node.js'></script>
<script src='../js/id/behavior.js'></script>
<script src='../js/id/behavior/add_way.js'></script>
@@ -108,10 +108,10 @@
<script src='../js/id/operations.js'></script>
<script src='../js/id/operations/circularize.js'></script>
<script src='../js/id/operations/delete.js'></script>
<script src='../js/id/operations/disconnect.js'></script>
<script src='../js/id/operations/move.js'></script>
<script src='../js/id/operations/reverse.js'></script>
<script src='../js/id/operations/split.js'></script>
<script src='../js/id/operations/unjoin.js'></script>
<script src='../js/id/graph/entity.js'></script>
<script src='../js/id/graph/graph.js'></script>
@@ -146,12 +146,12 @@
<script src="spec/actions/delete_node.js"></script>
<script src="spec/actions/delete_relation.js"></script>
<script src="spec/actions/delete_way.js"></script>
<script src='spec/actions/disconnect.js'></script>
<script src="spec/actions/move_node.js"></script>
<script src="spec/actions/move_way.js"></script>
<script src="spec/actions/noop.js"></script>
<script src="spec/actions/reverse_way.js"></script>
<script src="spec/actions/split_way.js"></script>
<script src='spec/actions/unjoin_node.js'></script>
<script src="spec/geo/extent.js"></script>
+1 -1
View File
@@ -39,12 +39,12 @@
<script src="spec/actions/delete_node.js"></script>
<script src="spec/actions/delete_relation.js"></script>
<script src="spec/actions/delete_way.js"></script>
<script src='spec/actions/disconnect.js'></script>
<script src="spec/actions/move_node.js"></script>
<script src="spec/actions/move_way.js"></script>
<script src="spec/actions/noop.js"></script>
<script src="spec/actions/reverse_way.js"></script>
<script src="spec/actions/split_way.js"></script>
<script src='spec/actions/unjoin_node.js'></script>
<script src="spec/geo/extent.js"></script>
@@ -1,9 +1,9 @@
describe("iD.actions.UnjoinNode", function () {
describe("iD.actions.Disconnect", function () {
describe("#enabled", function () {
it("returns false for a node shared by less than two ways", function () {
var graph = iD.Graph({'a': iD.Node()});
expect(iD.actions.UnjoinNode('a').enabled(graph)).to.equal(false);
expect(iD.actions.Disconnect('a').enabled(graph)).to.equal(false);
});
it("returns true for a node shared by two or more ways", function () {
@@ -19,7 +19,7 @@ describe("iD.actions.UnjoinNode", function () {
'|': iD.Way({id: '|', nodes: ['d', 'b']})
});
expect(iD.actions.UnjoinNode('b').enabled(graph)).to.equal(true);
expect(iD.actions.Disconnect('b').enabled(graph)).to.equal(true);
});
});
@@ -46,7 +46,7 @@ describe("iD.actions.UnjoinNode", function () {
'|': iD.Way({id: '|', nodes: ['d', 'b']})
});
graph = iD.actions.UnjoinNode('b', 'e')(graph);
graph = iD.actions.Disconnect('b', 'e')(graph);
expect(graph.entity('-').nodes).to.eql(['a', 'b', 'c']);
expect(graph.entity('|').nodes).to.eql(['d', 'e']);
@@ -64,7 +64,7 @@ describe("iD.actions.UnjoinNode", function () {
'|': iD.Way({id: '|', nodes: ['d', 'b']})
});
graph = iD.actions.UnjoinNode('b', 'e')(graph);
graph = iD.actions.Disconnect('b', 'e')(graph);
// Immutable loc => should be shared by identity.
expect(graph.entity('b').loc).to.equal(loc);