Re: [OpenMap Users] Customizing editor toolbar?

From: Carsten Ø. Madsen <com_at_navicon.dk>
Date: Wed, 11 Jan 2006 09:00:36 +0100

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"]
Received on Wed Jan 11 2006 - 03:03:01 EST

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