Opened 14 years ago
Last modified 6 years ago
#1265 reviewing feature request
Create HeuristicLab.Visualization
Reported by: | abeham | Owned by: | abeham |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 4.0 |
Component: | Visualization | Version: | branch |
Keywords: | Cc: |
Description (last modified by jkarder)
The drawing plugin from the prerelease version should be refactored and included in HeuristicLab 3.3 as a generic possibility for creating custom interactive controls.
This ticket has to be merged into stable before #2205
Change History (71)
comment:1 Changed 14 years ago by abeham
- Status changed from new to accepted
comment:2 Changed 14 years ago by abeham
comment:3 Changed 14 years ago by swagner
I would suggest to name this plugin HeuristicLab.Visualization instead of HeuristicLab.Drawing.
comment:4 Changed 14 years ago by abeham
- Renamed HeuristicLab.Drawing to HeuristicLab.Visualization
comment:5 Changed 14 years ago by mkommend
- Component changed from ### Undefined ### to Visualization
- Summary changed from Create HeuristicLab.Drawing to Create HeuristicLab.Visualization
comment:6 Changed 14 years ago by abeham
- Added a simple batch file that builds the project (without launching VS)
comment:7 Changed 14 years ago by abeham
comment:8 Changed 14 years ago by abeham
- Set project to compile against .NET 40
comment:9 Changed 14 years ago by abeham
- Priority changed from highest to medium
comment:10 Changed 13 years ago by bburlacu
r7617: ChartControl.cs: fixed memory leak in GenerateImage() method.
comment:11 Changed 13 years ago by bburlacu
r7780: Fixed zoom and small issue with selection. Added tool tips.
comment:12 Changed 12 years ago by bburlacu
r8215: Introduced a hash for primitives in order to improve lookup performance (Contains method).
comment:13 Changed 12 years ago by bburlacu
r8219: Group.cs: Replaced primitive list with a linked list as it better fits the requirements (random insertion of primitives in the beginning or middle of the list) and gives better performance.
comment:14 Changed 12 years ago by bburlacu
r9415: Added save file functionality in emf and bitmap formats.
comment:15 Changed 12 years ago by bburlacu
r9491: Added mouse wheel support to the picture box.
comment:16 Changed 11 years ago by bburlacu
- Owner changed from abeham to bburlacu
- Status changed from accepted to assigned
comment:17 Changed 11 years ago by bburlacu
- Status changed from assigned to accepted
comment:18 Changed 11 years ago by bburlacu
r10513: Added TextPrimitive and LabeledPrimitive. Fixed group drawing order.
comment:19 Changed 11 years ago by bburlacu
r10515: Removed bitmap private member and converted to auto-property (Bitmap property was never used).
comment:20 Changed 11 years ago by bburlacu
r10516: Replaced LabeledPrimitive with LabeledEllipse and LabeledRectangle, removed TextPrimitive (no need having another primitive type just for text). Removed project .user file.
comment:21 Changed 11 years ago by abeham
Instead of deriving a new type wouldn't it make more sense to just add a Text property to the existing Rectangle and draw the string if it is !string.IsNullOrEmpty ?
comment:22 Changed 11 years ago by bburlacu
I think that's a good idea. Thanks.
r10518: Removed labeled primitives and added text property to the RectangularPrimitiveBase. If the string is not null or empty it is drawn centered inside the rectangular primitive.
comment:23 Changed 11 years ago by bburlacu
r10831: Added MaximumFontSize property to RectangularPrimitiveBase.
comment:24 Changed 11 years ago by bburlacu
r10836: Improved scaling of font size when zooming so that it takes into account vertical dimensions as well.
comment:25 Changed 10 years ago by bburlacu
r11654: Updated target to .net 4.5
comment:26 Changed 10 years ago by gkronber
- Owner changed from bburlacu to architects
- Status changed from accepted to assigned
comment:27 Changed 10 years ago by ascheibe
- Owner changed from architects to bburlacu
comment:28 Changed 9 years ago by gkronber
r12535: updated copyright to 2015
comment:29 Changed 9 years ago by gkronber
- Milestone changed from HeuristicLab 3.3.x Backlog to HeuristicLab 3.3.12
- Owner changed from bburlacu to gkronber
- Status changed from assigned to accepted
comment:30 Changed 9 years ago by gkronber
r12536: copied tree layout engines and tree primitives from trunk to visualization branch
comment:31 Changed 9 years ago by gkronber
r12537: fixed namespace
comment:32 Changed 9 years ago by gkronber
- Milestone changed from HeuristicLab 3.3.12 to HeuristicLab 3.3.13
comment:33 Changed 9 years ago by gkronber
- Milestone changed from HeuristicLab 3.3.13 to HeuristicLab 4.0.x Backlog
comment:34 Changed 9 years ago by jkarder
- Owner changed from gkronber to jkarder
- Status changed from accepted to assigned
comment:35 Changed 9 years ago by jkarder
- Status changed from assigned to accepted
comment:36 Changed 9 years ago by jkarder
r13045: merged changes from abeham
comment:37 Changed 9 years ago by jkarder
- Owner changed from jkarder to abeham
- Status changed from accepted to reviewing
comment:38 Changed 9 years ago by abeham
In my opinion the handling of modes should be improved. I have discussed this with jkarder already, but want to give a summary here: The enum that has been used to store the current "mode" of the chart has not been suitable for extension, I changed this in that I'm using static readonly instances of a class ChartMode (which is still clumsy). The default chart supports "Select", "Move", "ZoomIn" and "ZoomOut". In derived charts there are modes for creating certain objects, connecting objects, etc. These are usually implemented in that a new mode is created. In the current implementation this functionality creates big if-then cascades inside the mouse event handlers of the ChartControl. However it would be nice if the chart control would not care about this and just forward these events to a mode class which makes the appropriate actions. It would be nice if we wouldn't need a new ChartControl class for every new Chart class. The different mode instances that a chart would support could be supplied by the chart class. The chart control could then create buttons on its toolbar for every mode.
comment:39 Changed 9 years ago by jkarder
- Owner changed from abeham to jkarder
- Status changed from reviewing to assigned
comment:40 Changed 9 years ago by jkarder
- Status changed from assigned to accepted
comment:41 Changed 9 years ago by jkarder
r13076: implemented new chart mode concept
comment:42 Changed 9 years ago by jkarder
- Description modified (diff)
comment:43 Changed 9 years ago by jkarder
r13105: worked on visualization
- added BackgroundColor to IChart
- added RulerChartMode
- renamed MoveChartMode to PanChartMode
comment:44 Changed 9 years ago by jkarder
r13106: fixed bug in ChartControl
comment:45 Changed 9 years ago by jkarder
r13107: fixed ZoomOutChartMode
comment:46 Changed 9 years ago by jkarder
r13108: moved previousLocation assignment to ChartMode class
comment:47 Changed 9 years ago by jkarder
r13112: implemented new render stage concept
comment:48 Changed 9 years ago by jkarder
r13114: worked on visualization
- removed BackgroundColor and PictureBox from ChartControl
- updated chart modes
comment:49 Changed 9 years ago by jkarder
r13115: worked on visualization
- added context menu item for chart modes
- added ShowToolBar to ChartControl
- updated chart modes
comment:50 Changed 9 years ago by jkarder
r13122: worked on visualization
- added default chart mode
- updated SelectChartMode
comment:51 Changed 9 years ago by jkarder
r13132: worked on visualization
- added Selected to ChartMode
- added PrimitiveAttribute
comment:52 Changed 9 years ago by jkarder
- Milestone changed from HeuristicLab 4.0 to HeuristicLab 3.3.13
- Owner changed from jkarder to abeham
- Status changed from accepted to reviewing
comment:53 Changed 9 years ago by abeham
Using the grid only in a renderstage would make SnapToGrid methods obsolete. I would suggest to introduce a "Canvas" property in the Chart of type ICanvas which has Snap() methods (not necessarily grid). Grid would then be an ICanvas. Also please create a SolidCanvas that would just fill everything with a certain color. Implement a base class Canvas that implements the snap methods virtual (and which does nothing), overwrite these in Grid.
comment:54 Changed 9 years ago by abeham
- Owner changed from abeham to jkarder
- Status changed from reviewing to assigned
comment:55 Changed 9 years ago by jkarder
- Milestone changed from HeuristicLab 3.3.13 to HeuristicLab 4.0
comment:56 Changed 9 years ago by jkarder
- Status changed from assigned to accepted
comment:57 Changed 9 years ago by jkarder
r13444: worked on visualization
- added private setter to VisualizableType
comment:58 Changed 9 years ago by bburlacu
r13716: Added option to select the SmoothingMode in the ChartControl. Introduced a LabeledPrimitive which encapsulates a RectangularPrimitiveBase primitive and supports drawing a text label on top of it. Introduced a set of useful methods in the PrimitiveUtil class for calculating intersection points between linear and rectangular primitives (useful for connecting shapes together).
comment:59 Changed 9 years ago by bburlacu
r13717: Updated license year to 2016.
comment:60 Changed 9 years ago by jkarder
r13753: worked on visualization
- brought back support for SnapToGrid methods
- updated license headers
comment:61 Changed 9 years ago by jkarder
r13762: worked on visualization
- added shortcut handling prototype
comment:62 Changed 9 years ago by jkarder
r13763: worked on visualization
- added null check for shortcut actions
comment:63 Changed 9 years ago by jkarder
- Owner changed from jkarder to abeham
- Status changed from accepted to reviewing
comment:64 Changed 9 years ago by jkarder
r13769: worked on visualization
- set KeyEventArgs.Handled to true if shortcut was recognized
comment:65 Changed 9 years ago by jkarder
r13798: worked on visualization
- fixed bug in primitive selection
- added SelectedPrimitivesChanged event
comment:66 Changed 9 years ago by bburlacu
r13822: Removed C# 4.6 language features from ChartControl.cs (default property value) to fix compilation.
comment:67 Changed 9 years ago by jkarder
r13832: worked on visualization
- keep lower left of chart during resizing
comment:68 Changed 8 years ago by abeham
r14679: fixed output paths for some build configurations
comment:69 Changed 7 years ago by jkarder
r15892: fixed output paths and project references
comment:70 Changed 7 years ago by jkarder
r15893: renamed branch according to guidelines
comment:71 Changed 6 years ago by gkronber
r16863: update .NET framework version to 4.6.1
r4773