Re: [OpenMap Users] Customizing editor toolbar?

From: Piotr Kamiński <Piotr.Kaminski_at_ctm.gdynia.pl>
Date: Tue, 10 Jan 2006 23:59:12 +0100

Hi,

I saw similar behavior with OMPoly:
   - create OMPoly
   - switch to Navigation
   - recenter map
   - switch to Drawing
   - now you can't move grab points
   - dragging points is the same than dragging whole line.

Another example:
   - create OMPoly
   - finish editing
   - select it
   - display properties panel
   - select 'matted' button
   - now you can't move grab points as previously

With OMDistance I saw the same problem.

It is nothing new. I've observed it for more than year, I think.

--
Piotr
Don Dietrick napisał(a):
> 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"]
Received on Tue Jan 10 2006 - 18:01:27 EST

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