Project

General

Profile

Actions

Task #184

closed

Добавить возможность перемещения требований

Added by Alexey Demakov about 14 years ago. Updated over 13 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Yuriy Shekochihin
Category:
-
Target version:
Start date:
04/01/2010
Due date:
% Done:

100%

Estimated time:
Detected in build:
Published in build:
0.6.35

Description

Добавить в контекстное меню требований пункт Move
Добавить обработку этого пункта меню, которая позволяет изменять родителя заданного требования.
В идеале должно работать и перетаскивание требования мышкой к другому родителю.

Actions #1

Updated by Yuriy Shekochihin almost 14 years ago

  • Status changed from New to Open
  • % Done changed from 0 to 70

Работает перемещение, но не всегда стабильно.

Actions #2

Updated by Yuriy Shekochihin almost 14 years ago

  • Status changed from Open to Resolved
  • % Done changed from 70 to 100
Actions #3

Updated by Alexey Demakov almost 14 years ago

  • Published in build set to 0.6.26
Actions #4

Updated by Alexey Demakov almost 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)

Actions #5

Updated by Alexey Khoroshilov almost 14 years ago

Если интерфейс для добавления требований будет достаточно удобен, чтобы не допускать промахов с указанием родительского требования, то эту возможность можно будет перенести на следующий релиз.

Actions #6

Updated by Alexey Khoroshilov almost 14 years ago

  • Target version changed from 0.6 to 0.7

Перенесена в 0.7.

Actions #7

Updated by Yuriy Shekochihin over 13 years ago

  • % Done changed from 100 to 70

Листья перетаскиваются, остальное пока не стабильно

Actions #8

Updated by Yuriy Shekochihin over 13 years ago

  • Status changed from New to Resolved

Решил отказаться от отлавливания сложных перемещений. Сейчас ловиться только переименование узлов. Остальные перемещения выполняются с помощью серии событий удаления и добавления.

Actions #9

Updated by Yuriy Shekochihin over 13 years ago

  • Published in build set to 0.6.35
Actions #10

Updated by Yuriy Shekochihin over 13 years ago

  • % Done changed from 70 to 100
Actions #11

Updated by Alexey Demakov over 13 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF