datasource.setRowIndex(-1); dndEvent = new DragDropEvent(this, behaviorEvent.getBehavior(), dragId, dropId, data); dndEvent = new DragDropEvent(this, behaviorEvent.getBehavior(), dragId, dropId);
/** * @param e */ public void onDropOnMember(DragDropEvent e) { List<Integer> sourcePath = getNodePath(e.getDragId()); List<Integer> targetPath = getNodePath(e.getDropId()); int position = targetPath.get(targetPath.size() - 1) + 1; boolean fromNavigator = isSourceNode(e.getDragId()); TreeNode root = fromNavigator ? getCubeNode() : getTargetNode(); TreeNode source = findNodeFromPath(root, sourcePath); TreeNode target = findNodeFromPath(getTargetNode(), targetPath); Member member; if (fromNavigator) { if (!(source instanceof MeasureNode)) { return; } member = ((MeasureNode) source).getObject(); Axis axis = (Axis) target.getParent().getParent().getData(); addMember(axis, member, position); } else { if (!(source.getData() instanceof Member)) { return; } member = (Member) source.getData(); moveMember(member, position); } }
/** * @param e */ public void onDropOnAxis(DragDropEvent e) { List<Integer> sourcePath = getNodePath(e.getDragId()); List<Integer> targetPath = getNodePath(e.getDropId()); boolean fromNavigator = isSourceNode(e.getDragId()); TreeNode root = fromNavigator ? getCubeNode() : getTargetNode(); TreeNode source = findNodeFromPath(root, sourcePath); TreeNode target = findNodeFromPath(getTargetNode(), targetPath); if (fromNavigator) { onDropOnAxis(source, target); } else if (source.getData() instanceof Hierarchy) { Axis targetAxis = (Axis) target.getData(); Hierarchy hierarchy = (Hierarchy) source.getData(); if (source.getParent().equals(target)) { moveHierarhy(targetAxis, hierarchy, 0); } else { Axis sourceAxis = (Axis) source.getParent().getData(); removeHierarhy(sourceAxis, hierarchy); addHierarhy(targetAxis, hierarchy); } } }
/** * @param e */ public void onDrop(DragDropEvent e) { String dragId = e.getDragId(); if (StringUtils.isEmpty(dragId)) { return; } List<Integer> path = getNodePath(dragId); boolean fromNavigator = isSourceNode(e.getDragId()); if (fromNavigator) { return; } TreeNode node = findNodeFromPath(getTargetNode(), path); if (node.getData() instanceof Hierarchy) { Axis axis = (Axis) node.getParent().getData(); Hierarchy hierarchy = (Hierarchy) node.getData(); removeHierarhy(axis, hierarchy); } else if (node.getData() instanceof Level) { Axis axis = (Axis) node.getParent().getParent().getData(); Level level = (Level) node.getData(); removeLevel(axis, level); } else if (node.getData() instanceof Member) { Member member = (Member) node.getData(); removeMember(member); } }
/** * @param e */ public void onDropOnHierarchy(DragDropEvent e) { List<Integer> sourcePath = getNodePath(e.getDragId()); List<Integer> targetPath = getNodePath(e.getDropId()); int position = targetPath.get(targetPath.size() - 1) + 1; boolean fromNavigator = isSourceNode(e.getDragId()); TreeNode root = fromNavigator ? getCubeNode() : getTargetNode(); TreeNode source = findNodeFromPath(root, sourcePath); TreeNode target = findNodeFromPath(getTargetNode(), targetPath); if (fromNavigator) { onDropOnHierarchy(source, target, position); } else if (source.getData() instanceof Hierarchy) { Axis targetAxis = (Axis) target.getParent().getData(); Hierarchy hierarchy = (Hierarchy) source.getData(); if (source.getParent().equals(target.getParent())) { moveHierarhy(targetAxis, hierarchy, position); } else { Axis sourceAxis = (Axis) source.getParent().getData(); removeHierarhy(sourceAxis, hierarchy); addHierarhy(targetAxis, hierarchy, position); } } else if (source.getData() instanceof Member) { if (source.getParent().equals(target)) { moveMember((Member) source.getData(), 0); } } }
datasource.setRowIndex(-1); dndEvent = new DragDropEvent(this, behaviorEvent.getBehavior(), dragId, dropId, data); dndEvent = new DragDropEvent(this, behaviorEvent.getBehavior(), dragId, dropId);