Re: [OpenMap Users] Customizing editor toolbar?

From: Don Dietrick <dietrick_at_bbn.com>
Date: Wed, 11 Jan 2006 08:32:17 -0500

I can't reproduce that behavior. If I include those lines, then the
drawing attribute gui shows up when the drawing tool isn't editing/
creating something. I don't understand why these lines would
interfere with editing the shape (for you). These lines just add GUI
components to the toolpanel.

Is there some other part of the code that has been modified as well?

- Don

On Jan 11, 2006, at 3:00 AM, Carsten Ø. Madsen wrote:

> I have boiled it down to the following. If the lines
>
> if (eomgc == null) {
> add(graphicAttributes.getGUI());
> }
>
> are included the dragging works. If they are excluded the dragging
> only works for a short while.
>
> /carsten
>
>
> Don Dietrick wrote:
>
>> I don't see that behavior. I'm able to modify an omdistance at
>> will, going back and forth between modes, multiple edits in
>> gesture mode, etc.
>>
>>
>>
>> On Jan 10, 2006, at 11:39 AM, Carsten Ø. Madsen wrote:
>>
>>> Create a omdistance deselected it. Switch to gesture mode. Move
>>> the cursor to a node and try to drage the node around for while.
>>> For me the dragging stops working when the leg length is updated
>>> the first time.
>>>
>>> /carsten
>>>
>>> Don Dietrick wrote:
>>>
>>>> I'm not sure what you mean by nodes not able to be dragged.
>>>> Editing for all OMGraphics appears to be normal for me. I
>>>> just made the same modification you did (although I also
>>>> passed a null value in currentEditable.getGUI
>>>> (graphicAttributes), instead of passing in the
>>>> graphicAttributes object).
>>>>
>>>> - Don
>>>>
>>>>
>>>> On Jan 10, 2006, at 10:38 AM, Carsten Ø. Madsen wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> It works (ie GUI look ok) but it breaks the editor. Nodes can
>>>>> not be dragged I think its got something to do with
>>>>> reinitalizing the drawingTool?
>>>>>
>>>>> /carsten
>>>>>
>>>>> Don Dietrick wrote:
>>>>>
>>>>>> Hi Carsten,
>>>>>>
>>>>>> On Jan 10, 2006, at 2:26 AM, Carsten Ø. Madsen wrote:
>>>>>>
>>>>>>> Don,
>>>>>>>
>>>>>>> I have done as you described. This leaves one problem the
>>>>>>> graphics attribute GUI appears in the toolbar when no item
>>>>>>> is selected. I can eliminated this by overriding the
>>>>>>> OMDrawingTool getGUI method and setting the drawingTool
>>>>>>> var in my DrawingEditorTool subclass. As I mentioned this
>>>>>>> causes the editor functions to behave weird, e.g., nodes
>>>>>>> can only be dragged until the leg distance text is redraw
>>>>>>> while dragging. Do I need to setup more stuff on the
>>>>>>> drawingTool in the code below. In DrawingEditorTool there
>>>>>>> are calls to drawingTool.addLoader etc but it is not
>>>>>>> obvious to me when this is called?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> It looks like it's called from setProperties(...) ->
>>>>>> addEditTooLoader (...).
>>>>>>
>>>>>>
>>>>>> It looks to me like the way to get the behavior you want is
>>>>>> to override the OMDrawingTool.getGUI() method. I think I
>>>>>> got what you want by doing this:
>>>>>>
>>>>>>
>>>>>> public Component getGUI() {
>>>>>> if (!resetGUIWhenDeactivated)
>>>>>> return this;
>>>>>>
>>>>>> removeAll();
>>>>>> Component eomgc = null;
>>>>>>
>>>>>> graphicAttributes.setLineMenuAdditions(null);
>>>>>> if (currentEditable != null) {
>>>>>> // GUI specific to a particular EditableOMGraphic
>>>>>> type.
>>>>>> // eomgc = currentEditable.getGUI(graphicAttributes);
>>>>>> eomgc = currentEditable.getGUI(null);
>>>>>> if (eomgc != null) {
>>>>>> add(eomgc);
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> // Basic, generic GUI if eomgc wasn't set.
>>>>>> // if (eomgc == null) {
>>>>>> // add(graphicAttributes.getGUI());
>>>>>> // }
>>>>>>
>>>>>> revalidate();
>>>>>> return this;
>>>>>> }
>>>>>>
>>>>>> The OMPoly and OMDistance seemed to work fine.
>>>>>>
>>>>>>
>>>>>> - Don
>>>>>>
>>>>>>
>>>>>>> public class RouteDrawingEditorTool extends DrawingEditorTool {
>>>>>>>
>>>>>>> public RouteDrawingEditorTool(EditorLayer layer) {
>>>>>>> super(layer);
>>>>>>> drawingTool = new OMDrawingTool() {
>>>>>>> public Component getGUI() {
>>>>>>> if (!resetGUIWhenDeactivated)
>>>>>>> return this;
>>>>>>> removeAll();
>>>>>>> Component eomgc = null;
>>>>>>> graphicAttributes.setLineMenuAdditions(null);
>>>>>>> if (currentEditable != null) {
>>>>>>> // GUI specific to a particular
>>>>>>> EditableOMGraphic type.
>>>>>>> eomgc = currentEditable.getGUI
>>>>>>> (graphicAttributes);
>>>>>>> if (eomgc != null) {
>>>>>>> add(eomgc);
>>>>>>> }
>>>>>>> }
>>>>>>> // do not show the graphicAttributes part fo
>>>>>>> the GUI
>>>>>>> // Basic, generic GUI if eomgc wasn't set.
>>>>>>> // if (eomgc == null) {
>>>>>>> // add(graphicAttributes.getGUI());
>>>>>>> // }
>>>>>>> revalidate();
>>>>>>> return this;
>>>>>>> }
>>>>>>> };
>>>>>>> drawingTool.setUseAsTool(true); // prevents popup menu
>>>>>>> use.
>>>>>>> drawingTool.getMouseMode().setVisible(false);
>>>>>>> ga = drawingTool.getAttributes();
>>>>>>> ga.setRenderType(OMGraphic.RENDERTYPE_LATLON);
>>>>>>> ga.setLineType(OMGraphic.LINETYPE_GREATCIRCLE);
>>>>>>> layer.setDrawingTool(drawingTool);
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> Don Dietrick wrote:
>>>>>>>
>>>>>>>> OK, if you want some attributes to show up, you should
>>>>>>>> keep that property set to true. I'd override the
>>>>>>>> EditableOMGraphics.getGUI () methods to return what you
>>>>>>>> want. It sounds like you want the EditableOMRoute.getGUI
>>>>>>>> () to just return the getPolyGUI() JToolBar instead of
>>>>>>>> adding that JToolBar to the GraphicAttributes GUI. For
>>>>>>>> all those EditableOMGraphics.getGUI() methods, returning
>>>>>>>> null is safe if you don't want anything to display.
>>>>>>>>
>>>>>>>> - Don
>>>>>>>>
>>>>>>>> On Jan 9, 2006, at 3:45 PM, Carsten Ø. Madsen wrote:
>>>>>>>>
>>>>>>>>> I tried that but I want the poly add/remove node icons to
>>>>>>>>> appear in the toolbar. I have tweaked my Editable class
>>>>>>>>> to do:
>>>>>>>>>
>>>>>>>>> public class EditableOMRoute extends EditableOMDistance {
>>>>>>>>> public JToolBar getPolyGUI() {
>>>>>>>>> return getPolyGUI(false, true, true);
>>>>>>>>> }
>>>>>>>>> ...
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> But if I run with showAttributes=false the getPolyGUI code
>>>>>>>>> is never called?
>>>>>>>>>
>>>>>>>>> regards
>>>>>>>>> /carsten
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Don Dietrick wrote:
>>>>>>>>>
>>>>>>>>>> Hi Carsten,
>>>>>>>>>>
>>>>>>>>>> You can set the .showAttributes property to false, and
>>>>>>>>>> those controls won't be shown. The 'Distance Layer'
>>>>>>>>>> in the openmap.properties file has that setting.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>>
>>>>>>>>>> Don
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Jan 9, 2006, at 9:44 AM, Carsten Ø. Madsen wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> I'm trying to customize the editor tollbar for
>>>>>>>>>>> OMDistance's so that the graphics attributes part,
>>>>>>>>>>> i.e., line width etc is not shown. I have managed to
>>>>>>>>>>> get the GUI to work as I want it to but the
>>>>>>>>>>> modifications breaks the editor functionallity, i.e.,
>>>>>>>>>>> dragging a node only works until the first time the
>>>>>>>>>>> distance label is updated. My code goes like this:
>>>>>>>>>>>
>>>>>>>>>>> public class RouteDrawingEditorTool extends
>>>>>>>>>>> DrawingEditorTool {
>>>>>>>>>>>
>>>>>>>>>>> public RouteDrawingEditorTool(EditorLayer layer) {
>>>>>>>>>>> super(layer);
>>>>>>>>>>> drawingTool = new OMDrawingTool() {
>>>>>>>>>>> public Component getGUI() {
>>>>>>>>>>> if (!resetGUIWhenDeactivated)
>>>>>>>>>>> return this;
>>>>>>>>>>> removeAll();
>>>>>>>>>>> Component eomgc = null;
>>>>>>>>>>> graphicAttributes.setLineMenuAdditions(null);
>>>>>>>>>>> if (currentEditable != null) {
>>>>>>>>>>> // GUI specific to a particular
>>>>>>>>>>> EditableOMGraphic type.
>>>>>>>>>>> eomgc = currentEditable.getGUI
>>>>>>>>>>> (graphicAttributes);
>>>>>>>>>>> if (eomgc != null) {
>>>>>>>>>>> add(eomgc);
>>>>>>>>>>> }
>>>>>>>>>>> }
>>>>>>>>>>> // do not show the graphicAttributes part
>>>>>>>>>>> of the GUI
>>>>>>>>>>> // Basic, generic GUI if eomgc wasn't set.
>>>>>>>>>>> // if (eomgc == null) {
>>>>>>>>>>> // add(graphicAttributes.getGUI());
>>>>>>>>>>> // }
>>>>>>>>>>> revalidate();
>>>>>>>>>>> return this;
>>>>>>>>>>> }
>>>>>>>>>>> };
>>>>>>>>>>> drawingTool.setUseAsTool(true); // prevents popup
>>>>>>>>>>> menu use.
>>>>>>>>>>> drawingTool.getMouseMode().setVisible(false);
>>>>>>>>>>> ga = drawingTool.getAttributes();
>>>>>>>>>>> ga.setRenderType(OMGraphic.RENDERTYPE_LATLON);
>>>>>>>>>>> ga.setLineType(OMGraphic.LINETYPE_GREATCIRCLE);
>>>>>>>>>>> layer.setDrawingTool(drawingTool);
>>>>>>>>>>> System.out.println("RouteDrawingEditorTool
>>>>>>>>>>> created!");
>>>>>>>>>>> }
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> Any hints?
>>>>>>>>>>>
>>>>>>>>>>> regards
>>>>>>>>>>> /carsten
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> [To unsubscribe to this list send an email to
>>>>>>>>>>> "majdart_at_bbn.com"
>>>>>>>>>>> with the following text in the BODY of the message
>>>>>>>>>>> "unsubscribe openmap-users"]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> [To unsubscribe to this list send an email to
>>>>>>>>> "majdart_at_bbn.com"
>>>>>>>>> with the following text in the BODY of the message
>>>>>>>>> "unsubscribe openmap-users"]
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> [To unsubscribe to this list send an email to "majdart_at_bbn.com"
>>>>>>>> with the following text in the BODY of the message
>>>>>>>> "unsubscribe openmap-users"]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> [To unsubscribe to this list send an email to "majdart_at_bbn.com"
>>>>>>> with the following text in the BODY of the message
>>>>>>> "unsubscribe openmap-users"]
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> [To unsubscribe to this list send an email to "majdart_at_bbn.com"
>>>>> with the following text in the BODY of the message
>>>>> "unsubscribe openmap-users"]
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> [To unsubscribe to this list send an email to "majdart_at_bbn.com"
>>> with the following text in the BODY of the message "unsubscribe
>>> openmap-users"]
>>
>>
>> --
>> [To unsubscribe to this list send an email to "majdart_at_bbn.com"
>> with the following text in the BODY of the message "unsubscribe
>> openmap-users"]
>
> --
> [To unsubscribe to this list send an email to "majdart_at_bbn.com"
> with the following text in the BODY of the message "unsubscribe
> openmap-users"]

--
[To unsubscribe to this list send an email to "majdart_at_bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]
Received on Wed Jan 11 2006 - 08:34:16 EST

This archive was generated by hypermail 2.3.0 : Tue Mar 28 2017 - 23:25:07 EDT