Re: moving graphics objects on a map

From: Donald Dietrick <dietrick@bbn.com>
Date: Thu Sep 06 2001 - 11:07:46 EDT

Well, this is one of those things that may cause trouble. The
LayerHandler has a handle to all the layers, so they will be written out
there. I'm not sure what happens when two references to the same object
get serialized. I would expect that two copies get written, but I would
then expect two separate objects when they are read back in.

- Don

On Thursday, September 6, 2001, at 10:59 AM, Jeff Mathis wrote:

> I'll definitely let you know. One thing I thought about was that not
> all layers are added to the bean context by default. I'll have to make
> sure that they are.
>
> jeff
>
> At 10:48 AM 9/6/2001 -0400, Donald Dietrick wrote:
>> Hi Jeff,
>>
>> With respect to serialization, what you are thinking about doing
>> *should* work - I'm not sure what the result would be, because I've
>> never tried it. I'd just be wary of some of the classes that have
>> transient variables, to make sure that are handled correctly. Let me
>> know how it goes...
>>
>> Regards,
>>
>> Don
>>
>> On Wednesday, September 5, 2001, at 02:43 PM, Jeff Mathis wrote:
>>
>>> Donald,
>>>
>>> I'm just getting around to this part of the code again.
>>> I didn't make any modifications to EditableOMCircle. I just overrode
>>> the getGraphic() method to return my location graphic instead of the
>>> default
>>> omcircle. As I get further into this, I'll let you know.
>>>
>>> I have another question converning serialization. I've noticed that
>>> most
>>> (if not all) of the openmap package is serializable. I would think
>>> that
>>> I would
>>> issue a writeObject() command on the MapHandler, and that would
>>> basically serialize all the
>>> components and their state. Would you agree? Then when I want to
>>> reload,
>>> I would somehow replace
>>> the current application maphandler with the new (now unserialized)
>>> maphandler. Any pitfalls I should be aware of
>>> before jumping into this further?
>>>
>>> jeff
>>>
>>> Donald Dietrick wrote:
>>>>
>>>> Hi Jeff,
>>>>
>>>> On Friday, August 24, 2001, at 07:37 PM, Jeff Mathis wrote:
>>>>
>>>>> Donald,
>>>>>
>>>>> I actually have a Location, composed of OMText and an OMGraphic (an
>>>>> OMCircle to be exact), that needs to be dragged around the map. I
>>>>> looked
>>>>> and did not see an EditableOMLocation class, so I wrote one that
>>>>> extended EditableOMCircle. I also added an EditToolLoader
>>>>> specifically
>>>>> for my locations, and then used the OMDrawingTool.
>>>>>
>>>>> Getting both the circle and the text to move was a little
>>>>> challenging. I
>>>>> may be doing this wrong, but in my drawingComplete(omgraphic,
>>>>> omaction)
>>>>> method, I had to do the following in order for the moved circle and
>>>>> the
>>>>> associated text to show up in the new location:
>>>>>
>>>>>
>>>>> /**
>>>>> * Specified by the DrawingToolRequestor interface. This method
>>>>> is
>>>>> called after
>>>>> * the edit has been performed on a given location
>>>>> * @param omg the OMGraphic object, which should be a MapEntity
>>>>> * @param oma the OMAction
>>>>> */
>>>>> public void drawingComplete(OMGraphic omg, OMAction oma) {
>>>>> Debug.message("entitylocationlayer","EntityLocationLayer:
>>>>> called
>>>>> drawingComplete");
>>>>> // reset the text label based on the circles coordinates
>>>>> // i'm not sure i understand it, but all of these calls are
>>>>> necessary
>>>>> LatLonPoint l =
>>>>> ((OMCircle)((MapEntity)omg).getLocationMarker()).getLatLon();
>>>>>
>>>>>
>>>>> ((OMCircle)((MapEntity)omg).getLocationMarker()).setVisible(true);
>>>>> ((MapEntity)omg).setLocation(l.getLatitude(),
>>>>> l.getLongitude());
>>>>> ((MapEntity)omg).generate(map.getProjection());
>>>>> ((MapEntity)omg).render(map.getGraphics());
>>>>> repaint();
>>>>> }
>>>>>
>>>>> I'm not sure why I had to set the circle to be visible. I think I
>>>>> understand why I needed to call both generate and render, and then
>>>>> certainly repaint at the end.
>>>>>
>>>>> Could you comment on 5 method calls after defining the LatLonPoint?
>>>>> This
>>>>> may again be much more of a Swing issue than OpenMap
>>>>
>>>> It's probably not a Swing issue, but more of the timing of actions
>>>> that
>>>> EditableOMGraphics go through to try and manage the MouseEvents. I
>>>> think some if these actions usually get called in the
>>>> EditableOMGraphic
>>>> before the drawingComplete() gets called, but there may not be
>>>> something
>>>> happening as expected depending on the modifications you had to make
>>>> to
>>>> EditableOMCircle.
>>>>
>>>> Do you have to modify the circle, or just the placement of the
>>>> location? It might be easier to work with EditableOMPoint when
>>>> editing
>>>> Location objects. That way, in the EditableOMGraphic.setGrabPoints()
>>>> and EditableOMGraphic.setGrabPoints(OMGraphic), you can just work
>>>> with
>>>> the methods of the Location object. It's hard for me to say what's
>>>> going on since I don't know what your are doing in EditableOMCircle.
>>>>
>>>> Let me know how confusing the Editable stuff is - what areas need
>>>> more
>>>> documentation, does it make sense, etc?
>>>>
>>>> Thanks,
>>>>
>>>> Don
>>>>
>>>>>
>>>>> thanks,
>>>>>
>>>>> jeff
>>>>>
>>>>> Donald Dietrick wrote:
>>>>>>
>>>>>> Hi Jeff,
>>>>>>
>>>>>> All of the EditableOMGraphics are really meant to be used with the
>>>>>> OMDrawingTool, although I suppose you could manage them through the
>>>>>> layer. I've never tried it, though.
>>>>>>
>>>>>> You can use the DrawingTool from a layer, though. See the
>>>>>> DemoLayer on
>>>>>> how it uses it to create and edit graphics. By default, when the
>>>>>> drawing tool is activated, a palette appears that provides other
>>>>>> parameters for changing the attributes of the graphics. There is
>>>>>> also a
>>>>>> way to call it so that a GUI doesn't show up to allow the user to
>>>>>> change
>>>>>> all the other features of a graphic (other than position and
>>>>>> size), if
>>>>>> you want those attributes preserved.
>>>>>>
>>>>>> - Don
>>>>>>
>>>>>> On Thursday, August 23, 2001, at 11:26 AM, Jeff Mathis wrote:
>>>>>>
>>>>>>> hello again,
>>>>>>>
>>>>>>> I have a layer which has a locationhandler. the locationhandler
>>>>>>> currently deals with a series of OMCircles to mark my locations of
>>>>>>> interest. I now need to be able to click on one of these
>>>>>>> locations and
>>>>>>> drag it to a new part of the map.
>>>>>>>
>>>>>>> I see there is an EditableOMCircle class, which I'm hoping has
>>>>>>> some of
>>>>>>> the functionality I need. Is this correct? If so, any hints on the
>>>>>>> best
>>>>>>> way to use it?
>>>>>>>
>>>>>>> If this is a class I want to use, I know I'll have to change my
>>>>>>> locationhandler to deal with an EditableOMGraphic instead of an
>>>>>>> OMGraphic.
>>>>>>>
>>>>>>> thanks
>>>>>>>
>>>>>>> jeff
>>>>>>> --
>>>>>>> Jeffrey Mathis, PhD FAX: 505-988-2229
>>>>>>> Senior Scientist email: jeff.mathis@biosgroup.com
>>>>>>> Bios Group, Inc. phone 505-992-6737
>>>>>>> 317 Paseo de Peralta http://www.biosgroup.com
>>>>>>> Santa Fe, NM 87501
>>>>>>>
>>>>>>> --
>>>>>>> [To unsubscribe to this list send an email to "majdart@bbn.com"
>>>>>>> with the following text in the BODY of the message "unsubscribe
>>>>>>> openmap-users"]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Donald F. Dietrick, dietrick@bbn.com
BBN Technologies, 10 Moulton Street, Cambridge, MA 02138
617.873.3031 FAX 2794
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>>>
>>>>> --
>>>>> Jeffrey Mathis, PhD FAX: 505-988-2229
>>>>> Senior Scientist email: jeff.mathis@biosgroup.com
>>>>> Bios Group, Inc. phone 505-992-6737
>>>>> 317 Paseo de Peralta http://www.biosgroup.com
>>>>> Santa Fe, NM 87501
>>>
>>> --
>>> Jeffrey Mathis, PhD FAX: 505-988-2229
>>> Senior Scientist email: jeff.mathis@biosgroup.com
>>> Bios Group, Inc. phone 505-992-6737
>>> 317 Paseo de Peralta http://www.biosgroup.com
>>> Santa Fe, NM 87501
>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]
Received on Thu Sep 6 11:08:38 2001

This archive was generated by hypermail 2.1.8 : Thu May 12 2005 - 07:18:31 EDT