Task #184
closedДобавить возможность перемещения требований
100%
Description
Добавить в контекстное меню требований пункт Move
Добавить обработку этого пункта меню, которая позволяет изменять родителя заданного требования.
В идеале должно работать и перетаскивание требования мышкой к другому родителю.
Updated by Yuriy Shekochihin over 14 years ago
- Status changed from New to Open
- % Done changed from 0 to 70
Работает перемещение, но не всегда стабильно.
Updated by Yuriy Shekochihin over 14 years ago
- Status changed from Open to Resolved
- % Done changed from 70 to 100
Updated by Alexey Demakov over 14 years ago
- Status changed from Resolved to New
- Published in build deleted (
0.6.26)
При перемещении требований в логе появляется исключение, идентификатор требования уникальный.
После нескольких перемещений Eclipse повис при выборе элемента в Requirements View, не знаю, есть ли связь.
!ENTRY org.eclipse.core.resources 4 2 2010-05-13 10:49:51.718
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.IllegalArgumentException: child with name A2 exists in node 670b95f3-cca3-404e-96a4-81623c454887
at com.unitesk.requality.core.TreeDBNode.addChild(TreeDBNode.java:90)
at com.unitesk.requality.core.TreeDB.reload(TreeDB.java:257)
at com.unitesk.requality.eclipse.tools.TreesTracker.resourceIsNode(TreesTracker.java:286)
at com.unitesk.requality.eclipse.tools.TreesTracker.processDelta(TreesTracker.java:254)
at com.unitesk.requality.eclipse.tools.TreesTracker.processChangedFiles(TreesTracker.java:224)
at com.unitesk.requality.eclipse.tools.TreesTracker.processChangedFiles(TreesTracker.java:232)
at com.unitesk.requality.eclipse.tools.TreesTracker.processChangedFiles(TreesTracker.java:232)
at com.unitesk.requality.eclipse.tools.TreesTracker.processChangedFiles(TreesTracker.java:232)
at com.unitesk.requality.eclipse.tools.TreesTracker.deltaWalk(TreesTracker.java:211)
at com.unitesk.requality.eclipse.Activator.updateCatalogTracker(Activator.java:178)
at com.unitesk.requality.eclipse.Activator$1.resourceChanged(Activator.java:70)
at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:291)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:313)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1022)
at org.eclipse.core.internal.resources.Resource.move(Resource.java:1481)
at org.eclipse.core.internal.resources.Resource.move(Resource.java:1432)
at com.unitesk.requality.eclipse.tools.TreeDBResourceIO.moveResource(TreeDBResourceIO.java:236)
at com.unitesk.requality.eclipse.tools.TreeDBResourceIO.saveResource(TreeDBResourceIO.java:280)
at com.unitesk.requality.core.TreeDB.save(TreeDB.java:189)
at com.unitesk.requality.eclipse.editors.ReqEditor.doSave(ReqEditor.java:127)
at org.eclipse.ui.internal.DefaultSaveable.doSave(DefaultSaveable.java:54)
at org.eclipse.ui.Saveable.doSave(Saveable.java:214)
at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:346)
at org.eclipse.ui.internal.SaveablesList$4.run(SaveablesList.java:610)
at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:274)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2579)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:282)
at org.eclipse.ui.internal.SaveablesList.saveModels(SaveablesList.java:619)
at org.eclipse.ui.internal.SaveablesList.promptForSaving(SaveablesList.java:583)
at org.eclipse.ui.internal.SaveablesList.promptForSavingIfNecessary(SaveablesList.java:422)
at org.eclipse.ui.internal.SaveablesList.preCloseParts(SaveablesList.java:383)
at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1348)
at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1435)
at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:61)
at org.eclipse.ui.internal.PartStack.close(PartStack.java:543)
at org.eclipse.ui.internal.EditorStack.close(EditorStack.java:206)
at org.eclipse.ui.internal.PartStack$1.close(PartStack.java:122)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:83)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:270)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:279)
at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1)
at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$1.closeButtonPressed(DefaultTabFolder.java:70)
at org.eclipse.ui.internal.presentations.PaneFolder.notifyCloseListeners(PaneFolder.java:626)
at org.eclipse.ui.internal.presentations.PaneFolder$3.close(PaneFolder.java:206)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2199)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:327)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Updated by Alexey Khoroshilov over 14 years ago
Если интерфейс для добавления требований будет достаточно удобен, чтобы не допускать промахов с указанием родительского требования, то эту возможность можно будет перенести на следующий релиз.
Updated by Alexey Khoroshilov over 14 years ago
- Target version changed from 0.6 to 0.7
Перенесена в 0.7.
Updated by Yuriy Shekochihin about 14 years ago
- % Done changed from 100 to 70
Листья перетаскиваются, остальное пока не стабильно
Updated by Yuriy Shekochihin about 14 years ago
- Status changed from New to Resolved
Решил отказаться от отлавливания сложных перемещений. Сейчас ловиться только переименование узлов. Остальные перемещения выполняются с помощью серии событий удаления и добавления.
Updated by Yuriy Shekochihin about 14 years ago
- Published in build set to 0.6.35
Updated by Alexey Demakov almost 14 years ago
- Status changed from Resolved to Closed