From mail Tue Jan  3 19:41:25 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k040fPc16937
	for openmap-users-archive; Tue, 3 Jan 2006 19:41:25 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k040fP216934
	for <openmap-users@openmap.bbn.com>; Tue, 3 Jan 2006 19:41:25 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k040YsU16039
	for openmap-users-outgoing; Tue, 3 Jan 2006 19:34:54 -0500 (EST)
From: "John Pearson" <rcd2951@satx.rr.com>
To: "Openmap-Users" <openmap-users@bbn.com>
Subject: [OpenMap Users] Configure OpenMap to look like screen on OpenMap homepage
Date: Tue, 3 Jan 2006 17:57:03 -0600
Message-ID: <KEEGLCKCDLFCJJIFGMJMEEGNCBAA.rcd2951@satx.rr.com>
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0014_01C6108F.1A7E7260"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0)
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
Importance: Normal
X-MS-TNEF-Correlator: <KEEGLCKCDLFCJJIFGMJMEEGNCBAA.rcd2951@satx.rr.com>
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Scanned: Symantec AntiVirus Scan Engine
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:36:22 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Tue, 03 Jan 2006 19:34:44 -0500 (EST)
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.5 required=2.5 tests=FROM_ENDS_IN_NUMS 
	autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.

------=_NextPart_000_0014_01C6108F.1A7E7260
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Don & List...

How do you configure OpenMap to look like the screen shown on the OpenMap
home page.  In particular, I am interested in the tree view display of
layers.

Also, I am still wondering how to configure the "sticky hand" panning mode.

regards

John Pearson, GG-13, DF
IMOM-Engineer Project Lead
453 Electronic Warfare Squadron, USAF

------=_NextPart_000_0014_01C6108F.1A7E7260
Content-Type: application/ms-tnef;
	name="winmail.dat"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="winmail.dat"

eJ8+IgMXAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy
b3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEGgAMADgAAANYHAQADABEAOAAAAAIALAEB
A5AGAMAFAAAiAAAACwACAAEAAAALACMAAAAAAAMAJgAAAAAACwApAAAAAAADADYAAAAAAB4AcAAB
AAAAOgAAAENvbmZpZ3VyZSBPcGVuTWFwIHRvIGxvb2sgbGlrZSBzY3JlZW4gb24gT3Blbk1hcCBo
b21lcGFnZQAAAAIBcQABAAAAFgAAAAHGEMFMRB3BQalHz0ThtCnnDERGNmgAAAIBHQwBAAAAGQAA
AFNNVFA6UkNEMjk1MUBTQVRYLlJSLkNPTQAAAAALAAEOAAAAAEAABg4AaBk/wRDGAQIBCg4BAAAA
GAAAAAAAAAC3dSNKimOkRrKijCe6z+b/woAAAAsAHw4BAAAAAgEJEAEAAACkAQAAoAEAAAECAABM
WkZ1PQMARQMACgByY3BnMTI1FjIA+Atgbg4QMDMzTwH3AqQD4wIAY2gKwHOwZXQwIAcTAoB9CoGS
dgiQd2sLgGQ0DGBOYwBQCwMLtSBEAiAgyCYgTAQAdC4UcAqiEwqECoBIbwfgZG8gCnkIYCAFoG5m
aWchCHBlIE9wCfBNYZhwIHQVsAkAb2sXUORpaxaQdGgWkATxCeH9GDBoFXADoBPhGAIWthjABQeA
IAqwZ2UuICBWSQOgCrF0DeB1C2ByQiwasCBhbSALgHS3BJAHkBwgZBvxF/N0CdFeIBIiFZAEAAtR
eRkAZhcXUB4QBJBzFJtBbHPebxuVFFADEAMgdwIgBIF9C4BnGfEH4BcxFhgYAiK5IFFjax4gEPAS
gCIaQb5uAwAhIQRiFJsJcGcLESMQsBS5Sm9oA6BQZQcRAQIgG5BHRy0xMwkbkERGFKRJTU9NvC1F
DyALgAngBcBQA2B2agWQBUBMJqALMRTCNOA1MyBFbCkxA2ADAGhjIFcKwGYKwBaQUxxxdSmQKqEb
kFVTQQsnpRHhAC0ACwABgAggBgAAAAAAwAAAAAAAAEYAAAAAA4UAAAAAAAADAAOACCAGAAAAAADA
AAAAAAAARgAAAAAQhQAAAAAAAAMAB4AIIAYAAAAAAMAAAAAAAABGAAAAAFKFAABzeQEAHgAJgAgg
BgAAAAAAwAAAAAAAAEYAAAAAVIUAAAEAAAAEAAAAOS4wAAsADYAIIAYAAAAAAMAAAAAAAABGAAAA
AIKFAAABAAAAAwAXgAggBgAAAAAAwAAAAAAAAEYAAAAAAYUAAAAAAAALAFGACCAGAAAAAADAAAAA
AAAARgAAAAAOhQAAAAAAAAMAU4AIIAYAAAAAAMAAAAAAAABGAAAAABGFAAAAAAAAAwBUgAggBgAA
AAAAwAAAAAAAAEYAAAAAGIUAAAAAAAALAMSACCAGAAAAAADAAAAAAAAARgAAAAAGhQAAAAAAAAIB
+A8BAAAAEAAAALd1I0qKY6RGsqKMJ7rP5v8CAfoPAQAAABAAAAC3dSNKimOkRrKijCe6z+b/AgH7
DwEAAACfAAAAAAAAADihuxAF5RAaobsIACsqVsIAAFBTVFBSWC5ETEwAAAAAAAAAAE5JVEH5v7gB
AKoAN9luAAAAQzpcRG9jdW1lbnRzIGFuZCBTZXR0aW5nc1xBZG1pbmlzdHJhdG9yXExvY2FsIFNl
dHRpbmdzXEFwcGxpY2F0aW9uIERhdGFcTWljcm9zb2Z0XE91dGxvb2tcb3V0bG9vay5wc3QAAAMA
/g8FAAAAAwANNP03AAACAX8AAQAAADMAAAA8S0VFR0xDS0NETEZDSkpJRkdNSk1FRUdOQ0JBQS5y
Y2QyOTUxQHNhdHgucnIuY29tPgAAAwAGEObdxeYDAAcQFAEAAAMAEBAAAAAAAwAREAAAAAAeAAgQ
AQAAAGUAAABET04mTElTVEhPV0RPWU9VQ09ORklHVVJFT1BFTk1BUFRPTE9PS0xJS0VUSEVTQ1JF
RU5TSE9XTk9OVEhFT1BFTk1BUEhPTUVQQUdFSU5QQVJUSUNVTEFSLElBTUlOVEVSRVNUAAAAALtI

------=_NextPart_000_0014_01C6108F.1A7E7260--


--
[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"]


From mail Tue Jan  3 23:08:00 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k04480R18762
	for openmap-users-archive; Tue, 3 Jan 2006 23:08:00 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k04480218759
	for <openmap-users@openmap.bbn.com>; Tue, 3 Jan 2006 23:08:00 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0445DR17451
	for openmap-users-outgoing; Tue, 3 Jan 2006 23:05:13 -0500 (EST)
In-Reply-To: <KEEGLCKCDLFCJJIFGMJMEEGNCBAA.rcd2951@satx.rr.com>
References: <KEEGLCKCDLFCJJIFGMJMEEGNCBAA.rcd2951@satx.rr.com>
Mime-Version: 1.0 (Apple Message framework v746.2)
X-Priority: 3 (Normal)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <F2097E88-6217-4D9E-87FA-DBC07273CE5B@bbn.com>
Cc: "Openmap-Users" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Configure OpenMap to look like screen on OpenMap homepage
Date: Tue, 3 Jan 2006 23:05:03 -0500
To: John Pearson <rcd2951@satx.rr.com>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi John,

On Jan 3, 2006, at 6:57 PM, John Pearson wrote:

> Don & List...
>
> How do you configure OpenMap to look like the screen shown on the  
> OpenMap
> home page.  In particular, I am interested in the tree view display of
> layers.

That picture was taken with the com.bbn.openmap.gui.OMControlPanel  
being used instead of the OMToolSet, LayersPanel and  
OverviewMapHandler (used as Tools, they are integrated into the  
OMControlPanel).  The OMControlPanel was being specified in the  
openmap.properties file.  I think there is a commented-out version of  
the openmap.components property in the default openmap.properties  
file for that configuration.

> Also, I am still wondering how to configure the "sticky hand"  
> panning mode.

I added 'panmm' to my openmap.components property, and added these  
properties to the openmap.properties file:

panmm.class=com.bbn.openmap.event.PanMouseMode
panmm.opaqueness=.8f

Hope this helps,

- Don

--
[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"]


From mail Wed Jan  4 06:32:29 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k04BWTS23285
	for openmap-users-archive; Wed, 4 Jan 2006 06:32:29 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k04BWS223282
	for <openmap-users@openmap.bbn.com>; Wed, 4 Jan 2006 06:32:28 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k04BTZR20170
	for openmap-users-outgoing; Wed, 4 Jan 2006 06:29:35 -0500 (EST)
Message-ID: <43BBAEDE.2070406@isi.wat.waw.pl>
Date: Wed, 04 Jan 2006 12:17:50 +0100
From: Mariusz Chmielewski <mchmiel@isi.wat.waw.pl>
User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: [OpenMap Users] OPENMAP GUI changes
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Scanned: by amavisd-new
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:11:14 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Wed, 04 Jan 2006 06:29:27 -0500 (EST)
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

I ve got some user interface issues with the openMap and i would like to 
ask anybody who perhaps managed to overcome them:
1. can one draw any comment on the openmap MapBean while te layer is 
loading??
2. can i customize the buttons on the right bottom of the screen that 
show which layers are redrawn??


please let me know if someone can answer those questions.
mchmiel

--
[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"]


From mail Wed Jan  4 08:57:02 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k04Dv2p24555
	for openmap-users-archive; Wed, 4 Jan 2006 08:57:02 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k04Dv2224552
	for <openmap-users@openmap.bbn.com>; Wed, 4 Jan 2006 08:57:02 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k04DsES21233
	for openmap-users-outgoing; Wed, 4 Jan 2006 08:54:14 -0500 (EST)
In-Reply-To: <43BBAEDE.2070406@isi.wat.waw.pl>
References: <43BBAEDE.2070406@isi.wat.waw.pl>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <D4EE5138-A49C-4FAA-BD58-8BC6BF705F18@bbn.com>
Cc: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] OPENMAP GUI changes
Date: Wed, 4 Jan 2006 08:53:57 -0500
To: Mariusz Chmielewski <mchmiel@isi.wat.waw.pl>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


On Jan 4, 2006, at 6:17 AM, Mariusz Chmielewski wrote:

> I ve got some user interface issues with the openMap and i would  
> like to ask anybody who perhaps managed to overcome them:
> 1. can one draw any comment on the openmap MapBean while te layer  
> is loading??

In general, sure.  If you want an overall solution, you can add a  
PaintListener to the MapBean that will be called after the MapBean  
paint(...) method is called, providing an opportunity to draw stuff  
on top.  So if the PaintListener knows when the layer is loading, it  
can render on the MapBean.

If you want a specific layer solution, if the layer is smart and does  
the loading in a SwingWorker thread, you can make it smart enough to  
render whatever you like until the worker thread is done.  You just  
have to figure out when to paint the comment versus the map stuff.

> 2. can i customize the buttons on the right bottom of the screen  
> that show which layers are redrawn??

The LayerStatusPane controls those buttons, and is set on the  
InformationDelegator.  You can replace it with whatever you like, or  
you can simply replace the green.png, red.png, and grey.png images  
with whatever you like in the classpath.  You don't even have to  
change the openmap.jar, you can add your images to the classpath in  
front of the openmap.jar.

Hope this helps,

Don


--
[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"]


From mail Thu Jan  5 14:22:19 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05JMJh10965
	for openmap-users-archive; Thu, 5 Jan 2006 14:22:19 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05JMI210962
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 14:22:18 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05JHC110857
	for openmap-users-outgoing; Thu, 5 Jan 2006 14:17:12 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=yahoo.com;
  h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding;
  b=eAZHYjL+OCzA3HnDjDQWR3w5HHXMC6BI8IVt0CglOHVBljH5IzLF0P+M+Sohi2lsgO/gSoZlNJf8vDCvIK/+UDQ9KCQesINcXQkenlNS0rfIhaXXR5TDn4yn/0AzGJs8oE0Ai36iqh0KuuzNUgmnijwRTxBoW0wFHG0MJLbrbNo=  ;
Message-ID: <20060105191017.71534.qmail@web31002.mail.mud.yahoo.com>
Date: Thu, 5 Jan 2006 11:10:17 -0800 (PST)
From: Greg Bulla <gbulla@yahoo.com>
Subject: [OpenMap Users] ESRI shape file items
To: openmap-users@bbn.com
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:06:39 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Thu, 05 Jan 2006 14:17:02 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hello -

I'm trying to figure out how to enable and disable features within
layers created from ESRI Shapefiles. It appears that these are
rendered without their supporting data, such as city names, road sign
graphics, etc.  

Any info on a way to enable and disable these would be greatly
appreciated!

- Greg

--
[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"]


From mail Thu Jan  5 14:27:33 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05JRXn11033
	for openmap-users-archive; Thu, 5 Jan 2006 14:27:33 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05JRX211030
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 14:27:33 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05JPFL11010
	for openmap-users-outgoing; Thu, 5 Jan 2006 14:25:15 -0500 (EST)
In-Reply-To: <E1EsV1N-000825-FC@fuse6.mailanyone.net>
References: <E1EsV1N-000825-FC@fuse6.mailanyone.net>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com>
Cc: <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] RE: AreaHandler.getProperties()
Date: Thu, 5 Jan 2006 14:25:06 -0500
To: Chase Barrett <chase.barrett@issinc.com>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

OK, here goes, a hard date.  We've got a code freeze set for January  
11th, and we expect to cut the 4.6.3 release on the 13th.  I've been  
going through back emails, looking for stuff I set aside to  
incorporate into the next release but that I may have overlooked.   
We're mirroring the 4.6.3 branch codebase in the CVS repository  
available on the download page on the website, so if anyone notices  
that something they expected to be the next release is not there, let  
us know either at openmap@bbn.com or openmap-users@bbn.com as soon as  
possible.  Anything that doesn't make it in by the freeze will get  
pushed to the upcoming 4.7 release.

So, there's also a working 4.7 branch that we haven't made available  
yet, the significance of the 4.7 release being that there will be API  
changes that may not be compatible with 4.6.2-3 and before.  The main  
features of the 4.7 release is that LatLonPoint extends Point2D, and  
the Projections have been updated to think in terms of Point2D  
objects.  This paves the way for displaying pre-projected data.   
Also, the projection library will be updated to handle double and  
float precision calculations.  We'll be making the beta for this  
available after the 4.6.3 release.

One of the goals Bill and I had for 2005 was to get into a cycle  
where we make about 3 releases a year, depending on how much time we  
have to devote to other projects.  We're still hoping to get to that  
point.

Cheers,

Don

On Dec 30, 2005, at 7:54 PM, Chase Barrett wrote:

> I guess I should ask when 4.6.3 is expected have its production  
> release.
>
>
>
> Thanks again, and Happy New Year!
>
> Chase
>
>
>
> From: Chase Barrett [mailto:chase.barrett@issinc.com]
> Sent: Friday, December 30, 2005 3:58 PM
> To: 'openmap-users@bbn.com'
> Subject: AreaHandler.getProperties()
>
>
>
> Hello,
>
>
>
> I am attempting to persist the state of an AreaShapeLayer via  
> properties, but unfortunately, AreaHandler.getProperties() does not  
> populate the given properties object as described in the  
> PropertyConsumer interface.  Any chance of implementing this method  
> in 4.6.3?
>
>
>
> Thanks,
>
> Chase
>
>





=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[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"]


From mail Thu Jan  5 14:31:35 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05JVZm11090
	for openmap-users-archive; Thu, 5 Jan 2006 14:31:35 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05JVZ211087
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 14:31:35 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05JTVo11130
	for openmap-users-outgoing; Thu, 5 Jan 2006 14:29:31 -0500 (EST)
In-Reply-To: <20060105191017.71534.qmail@web31002.mail.mud.yahoo.com>
References: <20060105191017.71534.qmail@web31002.mail.mud.yahoo.com>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <91668E32-C811-4EFC-821D-3B1BEEA098A2@bbn.com>
Cc: openmap-users@bbn.com
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] ESRI shape file items
Date: Thu, 5 Jan 2006 14:29:22 -0500
To: Greg Bulla <gbulla@yahoo.com>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Greg,

The easiest way to do this is to use the  
com.bbn.openmap.plugin.esri.EsriPlugIn to view the shape data.  That  
plugin takes the dbf file, which contains all that information, and  
makes it available via the layer's palette.  You also see the  
attributes of the features when you mouse over them.  The JavaDocs  
for the EsriPlugIn describe the properties that can be set for that  
component, which you would add to the openmap.layers property.

Hope this helps,

Don

On Jan 5, 2006, at 2:10 PM, Greg Bulla wrote:

> Hello -
>
> I'm trying to figure out how to enable and disable features within
> layers created from ESRI Shapefiles. It appears that these are
> rendered without their supporting data, such as city names, road sign
> graphics, etc.
>
> Any info on a way to enable and disable these would be greatly
> appreciated!
>
> - Greg
>
> --
> [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"]

--
[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"]


From mail Thu Jan  5 15:02:51 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05K2p111392
	for openmap-users-archive; Thu, 5 Jan 2006 15:02:51 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05K2p211389
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 15:02:51 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05K0aj11689
	for openmap-users-outgoing; Thu, 5 Jan 2006 15:00:36 -0500 (EST)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Subject: [OpenMap Users] Question about java 3D surface generation from DTED data
Date: Thu, 5 Jan 2006 12:00:18 -0800
Message-ID: <4513956641E0304391A62577F44810B0A30596@XCH-NW-3V2.nw.nos.boeing.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Question about java 3D surface generation from DTED data
Thread-Index: AcYHFA3T3AqZRIIFRji2HPY3Jk/SLgLHcEIA
From: "Esposito, Christopher" <christopher.esposito@boeing.com>
To: <openmap-users@bbn.com>
X-OriginalArrivalTime: 05 Jan 2006 20:00:18.0866 (UTC) FILETIME=[A7271920:01C61232]
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Thu, 05 Jan 2006 15:00:28 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k05K0YU11679
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


Hi all,
   prior to Christmas I finally ironed out my DTED viewing and Java 3D
installation problems (thanks to those on this list and the Java3D forum
for their help), so I can now successfully load and view (in 2D) some
DTED for the southern Arizona border, and then bring up a java3d scene.
What I was expecting / hoping to see in the 3D scene was some sort of 3D
surface that represented the varying elevations in the DTED data but I
didn't see anything I recognized as that. Was this an unreasonable
expectation? Is this not implemented, or is there still some setting I
have to work out?

Thanks,
Chris

--
[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"]


From mail Thu Jan  5 15:20:08 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05KK8711550
	for openmap-users-archive; Thu, 5 Jan 2006 15:20:08 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05KK8211547
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 15:20:08 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05KHvL12057
	for openmap-users-outgoing; Thu, 5 Jan 2006 15:17:57 -0500 (EST)
In-Reply-To: <4513956641E0304391A62577F44810B0A30596@XCH-NW-3V2.nw.nos.boeing.com>
References: <4513956641E0304391A62577F44810B0A30596@XCH-NW-3V2.nw.nos.boeing.com>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <06E14FAD-ED0D-4275-9F7E-AAFD8E72BFED@bbn.com>
Cc: <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Question about java 3D surface generation from DTED data
Date: Thu, 5 Jan 2006 15:17:52 -0500
To: "Esposito, Christopher" <christopher.esposito@boeing.com>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Chris,

Unfortunately, terrain build-up from elevation data has not been  
implemented yet.  The 3D stuff inefficiently renders layer map  
objects into 3D space, and it would be nice if it instead created  
textures that were overlaid onto the terrain.  That's the goal of a  
re-design for this year.

Regards,

Don


On Jan 5, 2006, at 3:00 PM, Esposito, Christopher wrote:

>
> Hi all,
>    prior to Christmas I finally ironed out my DTED viewing and Java 3D
> installation problems (thanks to those on this list and the Java3D  
> forum
> for their help), so I can now successfully load and view (in 2D) some
> DTED for the southern Arizona border, and then bring up a java3d  
> scene.
> What I was expecting / hoping to see in the 3D scene was some sort  
> of 3D
> surface that represented the varying elevations in the DTED data but I
> didn't see anything I recognized as that. Was this an unreasonable
> expectation? Is this not implemented, or is there still some setting I
> have to work out?
>
> Thanks,
> Chris
>
> --
> [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"]

--
[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"]


From mail Thu Jan  5 15:53:09 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05Kr9a11837
	for openmap-users-archive; Thu, 5 Jan 2006 15:53:09 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05Kqv211830
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 15:52:57 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05KnfL12583
	for openmap-users-outgoing; Thu, 5 Jan 2006 15:49:41 -0500 (EST)
Message-ID: <43BD8165.4060903@ctm.gdynia.pl>
Date: Thu, 05 Jan 2006 21:28:21 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] RE: AreaHandler.getProperties()
References: <E1EsV1N-000825-FC@fuse6.mailanyone.net> <1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com>
In-Reply-To: <1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:20:13 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Thu, 05 Jan 2006 15:49:32 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Don,

Don Dietrick napisaÅ‚(a):
> OK, here goes, a hard date.  We've got a code freeze set for January  
> 11th, and we expect to cut the 4.6.3 release on the 13th.  I've been  
> going through back emails, looking for stuff I set aside to  incorporate 
> into the next release but that I may have overlooked.   We're mirroring 
> the 4.6.3 branch codebase in the CVS repository  available on the 
> download page on the website, so if anyone notices  that something they 
> expected to be the next release is not there, let  us know either at 
> openmap@bbn.com or openmap-users@bbn.com as soon as  possible.  Anything 
> that doesn't make it in by the freeze will get  pushed to the upcoming 
> 4.7 release.
> 

Recently I wrote about changes and improvement I had made. Unfortunately 
I didn't find time to merge my changes with CVS version of OpenMap's 
sources. And this is why I didn't send you any sources. Sorry.

> So, there's also a working 4.7 branch that we haven't made available  
> yet, the significance of the 4.7 release being that there will be API  
> changes that may not be compatible with 4.6.2-3 and before.  The main  
> features of the 4.7 release is that LatLonPoint extends Point2D, and  
> the Projections have been updated to think in terms of Point2D  
> objects.  This paves the way for displaying pre-projected data.   Also, 
> the projection library will be updated to handle double and  float 
> precision calculations.  We'll be making the beta for this  available 
> after the 4.6.3 release.

Float/double functionality is long waiting one. I think that first I 
merge my code with 4.6.3 release then I could send you changes. Next I 
would try to adopt my code to 4.7 release. If it is successful I will 
definitely switch to 4.7 code base.

> 
> One of the goals Bill and I had for 2005 was to get into a cycle  where 
> we make about 3 releases a year, depending on how much time we  have to 
> devote to other projects.  We're still hoping to get to that  point.
> 

I wander is it possible to have write access to BBN's CVS repository? It 
  is quite complicated to me working now:
    - first I have to checkout sources from BBN
    - then I have to manually merge changes with version checked 
company's repository
    - this process is complicated end error prone especially if files 
was reformatted by some kind of beautifier
    - then I commit changes to company's repository
    - other developers also change OpenMap's code - this is why we don't 
just use compiled OpenMap.jar
    - our own changes in comparison to original sources are detected 
during merge.
    - then I have to collect all changed files, prepare comments and 
send it to openmap-users group
    - I could imagine similar process that you have to follow to 
incorporate my changes into your version of source tree

Having write access to repository would help me submit changes in easier 
way. I hope it also helps you.

I'm waiting for 4.7 beta release. Please take into consideration my 
proposition.

Best regards,
Piotr Kaminski

> Cheers,
> 
> Don
> 
> On Dec 30, 2005, at 7:54 PM, Chase Barrett wrote:
> 
>> I guess I should ask when 4.6.3 is expected have its production  release.
>>
>>
>>
>> Thanks again, and Happy New Year!
>>
>> Chase
>>
>>
>>
>> From: Chase Barrett [mailto:chase.barrett@issinc.com]
>> Sent: Friday, December 30, 2005 3:58 PM
>> To: 'openmap-users@bbn.com'
>> Subject: AreaHandler.getProperties()
>>
>>
>>
>> Hello,
>>
>>
>>
>> I am attempting to persist the state of an AreaShapeLayer via  
>> properties, but unfortunately, AreaHandler.getProperties() does not  
>> populate the given properties object as described in the  
>> PropertyConsumer interface.  Any chance of implementing this method  
>> in 4.6.3?
>>
>>
>>
>> Thanks,
>>
>> Chase
>>
>>
> 
> 
> 
> 
> 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Don Dietrick, dietrick@bbn.com
> BBN Technologies, Cambridge, MA
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> 
> 
> -- 
> [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"]

--
[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"]


From mail Thu Jan  5 16:06:24 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k05L6O911997
	for openmap-users-archive; Thu, 5 Jan 2006 16:06:24 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k05L6N211994
	for <openmap-users@openmap.bbn.com>; Thu, 5 Jan 2006 16:06:23 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k05L45f12782
	for openmap-users-outgoing; Thu, 5 Jan 2006 16:04:05 -0500 (EST)
From: "Chase Barrett" <chase.barrett@issinc.com>
To: <openmap-users@bbn.com>
Subject: [OpenMap Users] Number Of Colors in RPF Layer
Date: Thu, 5 Jan 2006 14:03:43 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_001E_01C61200.D6DB15E0"
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
thread-index: AcYSO4Khf9IuE1L2TCWKgag9yy/myA==
Message-Id: <E1EucH2-0002L0-QU@fuse6.mailanyone.net>
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Thu, 05 Jan 2006 16:03:56 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.

------=_NextPart_000_001E_01C61200.D6DB15E0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hello all,

 

I've been looking at some ONC and JNC charts with the numberColors property
set to various values.  It seems that no matter what value I choose, there's
no impact on the image appearance.  So if I select 16, 32, or 216, the chart
images appear identical.

 

I placed a breakpoint in RpfColortable.setNumColors(), and it seems that
this method is always passed a value of 216, even though the RpfLayer that
the color table belongs to has an RpfViewAttributes object with a value of
16 in its numberOfColors field.

 

Is this a bug?

 

Thanks,

Chase


------=_NextPart_000_001E_01C61200.D6DB15E0
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tahoma;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hello all,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I&#8217;ve been looking at some ONC and JNC charts =
with the numberColors
property set to various values.&nbsp; It seems that no matter what value =
I
choose, there&#8217;s no impact on the image appearance.&nbsp; So if I =
select
16, 32, or 216, the chart images appear =
identical.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I placed a breakpoint in =
RpfColortable.setNumColors(), and
it seems that this method is always passed a value of 216, even though =
the
RpfLayer that the color table belongs to has an RpfViewAttributes object =
with a
value of 16 in its numberOfColors field.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Is this a bug?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Thanks,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Chase<o:p></o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_000_001E_01C61200.D6DB15E0--


--
[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"]


From mail Fri Jan  6 02:57:59 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k067vxB17795
	for openmap-users-archive; Fri, 6 Jan 2006 02:57:59 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k067vx217792
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 02:57:59 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k067ruL17646
	for openmap-users-outgoing; Fri, 6 Jan 2006 02:53:56 -0500 (EST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Disposition-Notification-To: =?iso-8859-1?Q?Geir_=D8vsttun_=28AS/ETO=29?= <geir.ovsttun@ericsson.com>
Subject: [OpenMap Users] Log4J in OpenMap
Date: Fri, 6 Jan 2006 08:05:16 +0100
Message-ID: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.ericsson.se>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Log4J in OpenMap
Thread-Index: AcYSMa5aWwzthcc7TV+86hCzSytTBwAXBK+A
From: =?iso-8859-1?Q?Geir_=D8vsttun_=28AS/ETO=29?= <geir.ovsttun@ericsson.com>
To: <openmap-users@bbn.com>
Cc: "Don Dietrick" <dietrick@bbn.com>
X-OriginalArrivalTime: 06 Jan 2006 07:05:18.0946 (UTC) FILETIME=[8D742420:01C6128F]
X-Brightmail-Tracker: AAAAAA==
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:48:17 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Fri, 06 Jan 2006 02:53:47 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k067rrU17637
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi all,

I have a point on the OpenMap wishlist (4.7 ?) :
 
A modernized revamped logging component in OpenMap 

My proposal is Log4J (THE open source logging component)
http://logging.apache.org/log4j/docs/
(which I guess most of us are using anyway in the rest of our code)

It combines extreme ease of use with extreme logging flexilibility

Comments anyone ?

Geir 

--
[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"]


From mail Fri Jan  6 04:33:10 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k069XAq19023
	for openmap-users-archive; Fri, 6 Jan 2006 04:33:10 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k069X4219020
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 04:33:04 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k069TqC18419
	for openmap-users-outgoing; Fri, 6 Jan 2006 04:29:52 -0500 (EST)
Mime-Version: 1.0 (Apple Message framework v746.2)
In-Reply-To: <1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com>
References: <E1EsV1N-000825-FC@fuse6.mailanyone.net> 
	<1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com>
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed
Message-Id: <80F98000-33B8-4142-8860-E14BCEFB2643@pvv.ntnu.no>
Content-Transfer-Encoding: 7bit
From: Tore Halset <halset@pvv.ntnu.no>
Subject: Re: [OpenMap Users] RE: AreaHandler.getProperties()
Date: Fri, 6 Jan 2006 10:29:29 +0100
To: openmap questions <openmap-users@bbn.com>
X-Mailer: Apple Mail (2.746.2)
X-OriginalArrivalTime: 06 Jan 2006 09:29:31.0369 (UTC) 
	FILETIME=[B2B31D90:01C612A3]
X-imss-version: 2.035
X-imss-result: Passed
X-imss-scores: Clean:99.90000 C:2 M:3 S:5 R:5
X-imss-settings: Baseline:2 C:2 M:2 S:2 R:2 (0.1500 0.1500)
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:07:09 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Fri, 06 Jan 2006 04:29:39 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

On Jan 5, 2006, at 20:25, Don Dietrick wrote:

> The main features of the 4.7 release is that LatLonPoint extends  
> Point2D, and the Projections have been updated to think in terms of  
> Point2D objects.  This paves the way for displaying pre-projected  
> data.  Also, the projection library will be updated to handle  
> double and float precision calculations.

This is great news!

Currently, projecting an LatLonPoint into x-y space result in a  
java.awt.Point with int precision. I assume the projected point will  
have double/float precision as well?

  - Tore, looking forward to 4.7 :)

--
[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"]


From mail Fri Jan  6 04:54:47 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k069slC19207
	for openmap-users-archive; Fri, 6 Jan 2006 04:54:47 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k069sg219203
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 04:54:42 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k069qjX18581
	for openmap-users-outgoing; Fri, 6 Jan 2006 04:52:45 -0500 (EST)
In-Reply-To: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.eric
	sson.se>
References: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.erics
	son.se>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain;
	charset=ISO-8859-1;
	delsp=yes;
	format=flowed
Message-Id: <8E6AB90A-E4A5-42F7-AFFF-C59E40E53BD4@pvv.ntnu.no>
Cc: <openmap-users@bbn.com>, "Don Dietrick" <dietrick@bbn.com>
From: Tore Halset <halset@pvv.ntnu.no>
Subject: Re: [OpenMap Users] Log4J in OpenMap
Date: Fri, 6 Jan 2006 10:22:18 +0100
To: =?ISO-8859-1?Q?Geir_=D8vsttun_=28AS/ETO=29?= <geir.ovsttun@ericsson.com>
X-Mailer: Apple Mail (2.746.2)
X-OriginalArrivalTime: 06 Jan 2006 09:22:20.0422 (UTC) 
	FILETIME=[B1D5D260:01C612A2]
X-imss-version: 2.035
X-imss-result: Passed
X-imss-scores: Clean:99.90000 C:2 M:3 S:5 R:5
X-imss-settings: Baseline:2 C:2 M:2 S:2 R:2 (0.1500 0.1500)
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:30:07 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Fri, 06 Jan 2006 04:52:36 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k069qgU18572
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

On Jan 6, 2006, at 8:05, Geir Øvsttun (AS/ETO) wrote:

> My proposal is Log4J (THE open source logging component)
> http://logging.apache.org/log4j/docs/
> (which I guess most of us are using anyway in the rest of our code)
>
> It combines extreme ease of use with extreme logging flexilibility
>
> Comments anyone ?

I like log4j a lot, but its 352K (version 1.2.13) can be quite heavy  
in a applet or web start client.

  - Tore.

--
[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"]


From mail Fri Jan  6 05:03:41 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06A3fK19301
	for openmap-users-archive; Fri, 6 Jan 2006 05:03:41 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06A3f219298
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 05:03:41 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06A1kp18652
	for openmap-users-outgoing; Fri, 6 Jan 2006 05:01:46 -0500 (EST)
Message-ID: <43BE3FD3.9060209@ctm.gdynia.pl>
Date: Fri, 06 Jan 2006 11:00:51 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: openmap-users@bbn.com
CC: =?UTF-8?B?IkdlaXIgw5h2c3R0dW4gKEFTL0VUTyki?=
 <geir.ovsttun@ericsson.com>
Subject: Re: [OpenMap Users] Log4J in OpenMap
References: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.ericsson.se>
In-Reply-To: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.ericsson.se>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Fri, 06 Jan 2006 05:01:38 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Geir,
I proposed this solution long time ago, because I also use Log4j in my 
code. I thought about changing implementation
of Debug class without changing interface. Categories "layer", "omdlt", 
etc. might become logger names ("layer" -> "com.bbn.openmap.layer").
This solution doesn't require changes in classes using Debug class. The 
same time it allows dynamically change logging configuration
using log4j.properties. Of course it adds external dependency for 
log4j.jar. There may be two implementation of Debug class (old and the 
new one)
chose by user in ant build file for example.

Best regards,
Piotr Kaminski

Geir Ã˜vsttun (AS/ETO) napisaÅ‚(a):

>Hi all,
>
>I have a point on the OpenMap wishlist (4.7 ?) :
> 
>A modernized revamped logging component in OpenMap 
>
>My proposal is Log4J (THE open source logging component)
>http://logging.apache.org/log4j/docs/
>(which I guess most of us are using anyway in the rest of our code)
>
>It combines extreme ease of use with extreme logging flexilibility
>
>Comments anyone ?
>
>Geir 
>
>--
>[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"]
>  
>

--
[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"]


From mail Fri Jan  6 12:29:21 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06HTL123738
	for openmap-users-archive; Fri, 6 Jan 2006 12:29:21 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06HTI223735
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 12:29:18 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06HQV322488
	for openmap-users-outgoing; Fri, 6 Jan 2006 12:26:31 -0500 (EST)
Subject: RE: [OpenMap Users] Log4J in OpenMap
Date: Fri, 6 Jan 2006 11:13:36 -0600
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Message-ID: <323CB8984755C14C84F3E124B9ABC23D1D88D0@joker.nuparadigm.com>
Content-class: urn:content-classes:message
X-MS-Has-Attach: 
X-MimeOLE: Produced By Microsoft Exchange V6.5
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] Log4J in OpenMap
Thread-Index: AcYSquqwtfXR4ZweQgC2CmRBFGLVNQAOXkIg
From: "Sean Truman" <struman@nuparadigm.com>
To: "Tore Halset" <halset@pvv.ntnu.no>,
   =?iso-8859-1?Q?Geir_=D8vsttun_=28AS/ETO=29?= <geir.ovsttun@ericsson.com>
Cc: <openmap-users@bbn.com>, "Don Dietrick" <dietrick@bbn.com>
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:12:36 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Fri, 06 Jan 2006 12:26:20 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k06HQRU22478
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Write a wrapper class for the logger that checks if it is an applet or not.

Sean Truman
Senior System Engineer
Nuparadigm Government Systems, Inc.
(work)(636)777-4235 

-----Original Message-----
From: owner-openmap-users@bbn.com [mailto:owner-openmap-users@bbn.com] On Behalf Of Tore Halset
Sent: Friday, January 06, 2006 3:22 AM
To: Geir Øvsttun (AS/ETO)
Cc: openmap-users@bbn.com; Don Dietrick
Subject: Re: [OpenMap Users] Log4J in OpenMap

On Jan 6, 2006, at 8:05, Geir Øvsttun (AS/ETO) wrote:

> My proposal is Log4J (THE open source logging component)
> http://logging.apache.org/log4j/docs/
> (which I guess most of us are using anyway in the rest of our code)
>
> It combines extreme ease of use with extreme logging flexilibility
>
> Comments anyone ?

I like log4j a lot, but its 352K (version 1.2.13) can be quite heavy  
in a applet or web start client.

  - Tore.

--
[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"]


From mail Fri Jan  6 12:45:52 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06Hjqu23897
	for openmap-users-archive; Fri, 6 Jan 2006 12:45:52 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06Hjq223894
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 12:45:52 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06HiBQ22660
	for openmap-users-outgoing; Fri, 6 Jan 2006 12:44:11 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=yahoo.com;
  h=Message-ID:Received:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding;
  b=bcewfARpmZrx1bIbzigxW4chMwwSosul81m0rSXoafzxev+9RcJ0YibTCS/ZQQ8ev97Qo1ttH30hOpgwx+wDE1coQYwKlJvhXjD7zJuySsv8OfAlWiH/08HKqLFlRAy1suEj3/T2uNtspAWgaAt7/0tnac1iGamHJWgC2gAH5qM=  ;
Message-ID: <20060106174355.25231.qmail@web31012.mail.mud.yahoo.com>
Date: Fri, 6 Jan 2006 09:43:55 -0800 (PST)
From: Greg Bulla <gbulla@yahoo.com>
Subject: Re: [OpenMap Users] ESRI shape file items
To: Don Dietrick <dietrick@bbn.com>
Cc: openmap-users@bbn.com
In-Reply-To: <91668E32-C811-4EFC-821D-3B1BEEA098A2@bbn.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Fri, 06 Jan 2006 12:44:03 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


Thanks Don, but it doesn't look like we can use the EsriPlugIn as we
are developing a map server for use by web browsers who request the
image via HTTP call.  Our 'server' is a simple Java HttpServlet class
that instantiates a MapRequestHandler class object and returns a JPEG
to the client. Hence, the layers are all handled behind the scene by
MapRequestHandler as part of the OpenMap properties and HTTP request
from the client.

I guess I now need to hear about the hard way to do it! :) :(

Greg


> Hi Greg,
> 
> The easiest way to do this is to use the  
> com.bbn.openmap.plugin.esri.EsriPlugIn to view the shape data. 
> That  
> plugin takes the dbf file, which contains all that information, and
>  
> makes it available via the layer's palette.  You also see the  
> attributes of the features when you mouse over them.  The JavaDocs 
> 
> for the EsriPlugIn describe the properties that can be set for that
>  
> component, which you would add to the openmap.layers property.
> 
> Hope this helps,
> 
> Don
> 
> On Jan 5, 2006, at 2:10 PM, Greg Bulla wrote:
> 
> > Hello -
> >
> > I'm trying to figure out how to enable and disable features
> within
> > layers created from ESRI Shapefiles. It appears that these are
> > rendered without their supporting data, such as city names, road
> sign
> > graphics, etc.
> >
> > Any info on a way to enable and disable these would be greatly
> > appreciated!
> >
> > - Greg
> >
> > --
> > [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"]
> 
> 

--
[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"]


From mail Fri Jan  6 13:42:48 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06Igm724378
	for openmap-users-archive; Fri, 6 Jan 2006 13:42:48 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06Igh224375
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 13:42:43 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06IdlR23272
	for openmap-users-outgoing; Fri, 6 Jan 2006 13:39:47 -0500 (EST)
In-Reply-To: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.ericsson.se>
References: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.ericsson.se>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <F6DA3C05-EF91-4E67-9724-4CF2E6AA920F@bbn.com>
Cc: <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Log4J in OpenMap
Date: Fri, 6 Jan 2006 13:39:36 -0500
To: =?ISO-8859-1?Q?Geir_=D8vsttun_=28AS/ETO=29?= <geir.ovsttun@ericsson.com>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k06IdjU23263
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Geir,

First, I agree that Debug needs to be replaced, and 4.7 would be an  
ideal time to do it.  The main reason Debug is still around is  
because I haven't figured out whether to use log4j or java's logging  
mechanism, and/or using Piotr's suggestion of making Debug a wrapper  
for either.

Is there a reason to use log4j over the logging mechanism built into  
Java?  I've used both but not enough to choose one over the other  
based on some capability one has over the other.  I can see a benefit  
to not having to deal with yet another jar file, however, which makes  
the java logger more attractive to me.

Is one faster than the other, or does one take up fewer resources?   
I've read several articles written that compares the two, but I still  
can find or remember an obvious answer.

- Don


On Jan 6, 2006, at 2:05 AM, Geir Øvsttun (AS/ETO) wrote:

> Hi all,
>
> I have a point on the OpenMap wishlist (4.7 ?) :
>
> A modernized revamped logging component in OpenMap
>
> My proposal is Log4J (THE open source logging component)
> http://logging.apache.org/log4j/docs/
> (which I guess most of us are using anyway in the rest of our code)
>
> It combines extreme ease of use with extreme logging flexilibility
>
> Comments anyone ?
>
> Geir

--
[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"]


From mail Fri Jan  6 14:23:04 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06JN4h24759
	for openmap-users-archive; Fri, 6 Jan 2006 14:23:04 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06JN4224756
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 14:23:04 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06JIlk23947
	for openmap-users-outgoing; Fri, 6 Jan 2006 14:18:47 -0500 (EST)
In-Reply-To: <80F98000-33B8-4142-8860-E14BCEFB2643@pvv.ntnu.no>
References: <E1EsV1N-000825-FC@fuse6.mailanyone.net>  <1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com> <80F98000-33B8-4142-8860-E14BCEFB2643@pvv.ntnu.no>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <617AFBB7-D683-45A0-B88D-79C1F5459B01@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] RE: AreaHandler.getProperties()
Date: Fri, 6 Jan 2006 14:18:07 -0500
To: Tore Halset <halset@pvv.ntnu.no>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Tore,

On Jan 6, 2006, at 4:29 AM, Tore Halset wrote:

> Currently, projecting an LatLonPoint into x-y space result in a  
> java.awt.Point with int precision. I assume the projected point  
> will have double/float precision as well?

No, the projected points will be reduced to integers.  I hadn't  
really considered fractional pixels, although the jdk renders them.

The changes for LatLonPoints 4.7 only broke a couple of things, the  
biggest thing being layers asking the projection what the upper left  
and lower right corner coordinates were.  Those have to be changed  
from LatLonPoint to Point2D objects.

I'll have to check an see what the impact would be to change the  
projections to handle Point2D objects instead of Point objects for  
projected coordinate space.  I originally though that would be a big  
deal but since Point extends Point2D, it might just affect the code  
that access the Point.x and Point.y members directly.  Which may or  
may not be a lot.

- Don

--
[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"]


From mail Fri Jan  6 15:38:17 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06KcH525479
	for openmap-users-archive; Fri, 6 Jan 2006 15:38:17 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06KcH225476
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 15:38:17 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06KZU325061
	for openmap-users-outgoing; Fri, 6 Jan 2006 15:35:30 -0500 (EST)
Date: Fri, 06 Jan 2006 20:35:08 +0100
From: Tore Halset <halset@pvv.ntnu.no>
Subject: Re: [OpenMap Users] RE: AreaHandler.getProperties()
In-reply-to: <617AFBB7-D683-45A0-B88D-79C1F5459B01@bbn.com>
To: openmap questions <openmap-users@bbn.com>
Message-id: <98C927B6-D0F5-4363-B5C3-150F27C53AB6@pvv.ntnu.no>
MIME-version: 1.0
X-Mailer: Apple Mail (2.746.2)
Content-type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Content-transfer-encoding: 7BIT
References: <E1EsV1N-000825-FC@fuse6.mailanyone.net>
 <1E0C8C6B-4B2D-43AF-9AE7-6E5F5EA39B0F@bbn.com>
 <80F98000-33B8-4142-8860-E14BCEFB2643@pvv.ntnu.no>
 <617AFBB7-D683-45A0-B88D-79C1F5459B01@bbn.com>
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 01:00:05 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Fri, 06 Jan 2006 15:35:21 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

On Jan 6, 2006, at 20:18, Don Dietrick wrote:

> No, the projected points will be reduced to integers.  I hadn't  
> really considered fractional pixels, although the jdk renders them.
>
> I'll have to check an see what the impact would be to change the  
> projections to handle Point2D objects instead of Point objects for  
> projected coordinate space.  I originally though that would be a  
> big deal but since Point extends Point2D, it might just affect the  
> code that access the Point.x and Point.y members directly.  Which  
> may or may not be a lot.

That would be very useful!

I am using OpenMap projection together with jts[1] to buffer[2] a lat/ 
lon geometry with a number of meters or nautical miles. I project the  
geometry from lat/lon to x/y, use jts to buffer and then project back  
to lat/lon. With the correct scale value, the precision is ok, but  
using double would not hurt..

Regards,
  - Tore.
[1] http://www.jump-project.org/project.php?PID=JTS&SID=OVER
[2] http://www.jump-project.org/inc/JTS/img/PosBuffer.gif

--
[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"]


From mail Fri Jan  6 16:02:23 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k06L2Nc25785
	for openmap-users-archive; Fri, 6 Jan 2006 16:02:23 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k06L2N225782
	for <openmap-users@openmap.bbn.com>; Fri, 6 Jan 2006 16:02:23 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k06L0WI25466
	for openmap-users-outgoing; Fri, 6 Jan 2006 16:00:32 -0500 (EST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Subject: [OpenMap Users] Question about OMPoint data precision WRT next release of OpenMap
Date: Fri, 6 Jan 2006 15:04:48 -0500
Message-ID: <8236CB6B583A4C46B6A2D2FE8F4AFEE8685F29@IMCSRV3.MITRE.ORG>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Question about OMPoint data precision WRT next release of OpenMap
Thread-Index: AcYS9721bLuY/yHzQK69YlY8cOfwZQAA48vA
From: "Pierce, Deborah" <djv@mitre.org>
To: "Don Dietrick" <dietrick@bbn.com>
Cc: "openmap questions" <openmap-users@bbn.com>
X-OriginalArrivalTime: 06 Jan 2006 20:04:50.0707 (UTC) FILETIME=[73987E30:01C612FC]
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:55:27 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Fri, 06 Jan 2006 16:00:23 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k06L0TU25457
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Don,
  I'm hoping that the release of Openmap 4.7 will address an issue that
I came across in Openmap 4.6.2.  We connected Openmap to a
GPS system we have that produces lat/lon data as double.  But, to
show the data on OpenMap, we had to cast the data to float to show
data using OMPoint.  When we brought up the data in Openmap, 
unfortunately, the GPS points showed the loss of precision, the data
formed 
an obvious grid.  
  To fix this, I had to extend OMPoint (OMPointDouble), 
extend Mercator (MercatorDouble) and extend 
BasicProjectionLoader (MercatorDoubleLoader), and use my derived
classes
to show the data.  Is this going to be fixed in OpenMap 4.7?
	Regards,
	Debbie Pierce
	MITRE Corporation

--
[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"]


From mail Mon Jan  9 10:15:51 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k09FFpC07970
	for openmap-users-archive; Mon, 9 Jan 2006 10:15:51 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k09FFn207966
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 10:15:49 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k09F9Vc26614
	for openmap-users-outgoing; Mon, 9 Jan 2006 10:09:31 -0500 (EST)
Message-ID: <43C276D1.8090100@navicon.dk>
Date: Mon, 09 Jan 2006 15:44:33 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Organization: NAVICON A/S
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Fedora/1.7.12-1.5.1
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: [OpenMap Users] Customizing editor toolbar?
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:24:27 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Mon, 09 Jan 2006 10:09:23 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Jan  9 15:18:16 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k09KIGg10483
	for openmap-users-archive; Mon, 9 Jan 2006 15:18:16 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k09KIF210480
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 15:18:15 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k09KG3t00465
	for openmap-users-outgoing; Mon, 9 Jan 2006 15:16:03 -0500 (EST)
In-Reply-To: <43C276D1.8090100@navicon.dk>
References: <43C276D1.8090100@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Mon, 9 Jan 2006 15:15:45 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k09KG0U00456
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Jan  9 15:48:31 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k09KmVi10636
	for openmap-users-archive; Mon, 9 Jan 2006 15:48:31 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k09KmV210633
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 15:48:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k09KkRp00876
	for openmap-users-outgoing; Mon, 9 Jan 2006 15:46:27 -0500 (EST)
Message-ID: <43C2CB7D.30301@navicon.dk>
Date: Mon, 09 Jan 2006 21:45:49 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Organization: NAVICON A/S
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Fedora/1.7.12-1.5.1
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: openmap questions <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com>
In-Reply-To: <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Mon, 09 Jan 2006 15:46:18 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Jan  9 16:45:11 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k09LjBZ10928
	for openmap-users-archive; Mon, 9 Jan 2006 16:45:11 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k09LjB210925
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 16:45:11 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k09LgiX01928
	for openmap-users-outgoing; Mon, 9 Jan 2006 16:42:44 -0500 (EST)
In-Reply-To: <43C2CB7D.30301@navicon.dk>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <9D26332F-73C6-44B8-AB1D-A0B80A95303F@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Mon, 9 Jan 2006 16:42:34 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k09LgfU01915
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Jan  9 16:45:59 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k09Ljxh10938
	for openmap-users-archive; Mon, 9 Jan 2006 16:45:59 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k09Ljx210935
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 16:45:59 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k09Lh2w01943
	for openmap-users-outgoing; Mon, 9 Jan 2006 16:43:02 -0500 (EST)
In-Reply-To: <43C2CB7D.30301@navicon.dk>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Mon, 9 Jan 2006 16:42:53 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k09LgxU01934
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Jan  9 17:44:24 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k09MiOx11716
	for openmap-users-archive; Mon, 9 Jan 2006 17:44:24 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k09MiO211713
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 17:44:24 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k09MgCu02447
	for openmap-users-outgoing; Mon, 9 Jan 2006 17:42:12 -0500 (EST)
In-Reply-To: <8236CB6B583A4C46B6A2D2FE8F4AFEE8685F29@IMCSRV3.MITRE.ORG>
References: <8236CB6B583A4C46B6A2D2FE8F4AFEE8685F29@IMCSRV3.MITRE.ORG>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <E528B8DA-8E8C-48AF-AF9A-4AA2D8EDAADD@bbn.com>
Cc: "openmap questions" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Question about OMPoint data precision WRT next release of OpenMap
Date: Mon, 9 Jan 2006 17:42:04 -0500
To: "Pierce, Deborah" <djv@mitre.org>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Debbie,

I'm still struggling with the architecture of OMGraphics that use  
doubles, I'm working on a class structure that lets you choose  
between floats and doubles (space vs precision).

At the least, what 4.7 will definitely do is allow you to do define  
your own OMGraphics that use doubles for precision, and use the  
standard projection library components to display them in a layer.

- Don

On Jan 6, 2006, at 3:04 PM, Pierce, Deborah wrote:

> Hi Don,
>   I'm hoping that the release of Openmap 4.7 will address an issue  
> that
> I came across in Openmap 4.6.2.  We connected Openmap to a
> GPS system we have that produces lat/lon data as double.  But, to
> show the data on OpenMap, we had to cast the data to float to show
> data using OMPoint.  When we brought up the data in Openmap,
> unfortunately, the GPS points showed the loss of precision, the data
> formed
> an obvious grid.
>   To fix this, I had to extend OMPoint (OMPointDouble),
> extend Mercator (MercatorDouble) and extend
> BasicProjectionLoader (MercatorDoubleLoader), and use my derived
> classes
> to show the data.  Is this going to be fixed in OpenMap 4.7?
> 	Regards,
> 	Debbie Pierce
> 	MITRE Corporation
>
> --
> [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"]

--
[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"]


From mail Mon Jan  9 20:10:05 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0A1A5616004
	for openmap-users-archive; Mon, 9 Jan 2006 20:10:05 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0A19q215995
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 20:09:52 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0A16gI03418
	for openmap-users-outgoing; Mon, 9 Jan 2006 20:06:42 -0500 (EST)
Message-ID: <43C30860.60307@ctm.gdynia.pl>
Date: Tue, 10 Jan 2006 02:05:36 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: Don Dietrick <dietrick@bbn.com>,
   "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Log4J in OpenMap
References: <891AE1CD3C5FF345BF8B3542D8D054CD011B1372@esealmw112.eemea.ericsson.se> <F6DA3C05-EF91-4E67-9724-4CF2E6AA920F@bbn.com> <43BFC880.3040305@ctm.gdynia.pl> <74C5955E-4DC6-4516-9C6C-A153C39D5A68@bbn.com>
In-Reply-To: <74C5955E-4DC6-4516-9C6C-A153C39D5A68@bbn.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Mon, 09 Jan 2006 20:06:29 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Don,

Don Dietrick napisaÅ‚(a):
> Hi Piotr,
> 
> Thanks for the insight into your decision.  My first instinct is to  
> wrap the commons logging classes into the OpenMap package (within  
> openmap.jar), so that log4j is used if it's available, and the jdk  
> logging used if not.  Does that seem like a good idea?
> 

Because Jakarta Commons Logging is rather small library you could embed 
  it into OpenMap.jar. It is not the way I prefer, but I understand your 
objectives. As long as I could use log4j I am happy :-)

It may be useful for users to have simple log4j.properties (and its JDK
Logging API equivalent) attached to OpenMap distribution. Talking about 
configuration: it is important to me to have mechanism of specifying 
exact location of log4j.properties. I have already configured my 
application to use log4j and I would prefer to just add some entries in 
existing configuration file than adding the new one. (As I remember I 
was able to use the same configuration file for my code and Hibernate 
internal logging - so it is doable).

> Are you using Hibernate to store OMGraphics?
> 

I depends:
   Not, I haven't used Hibernate to store OMGraphics directly - I stored 
my own POJO's business objects.
   Yes, I have stored OMGraphicList serialized into XML in BLOBs using 
Hibernate.

This is off-topic but I think that it is important one:

In fact I am not very happy with current XML serialization of OMGraphics 
classes. Standard JDK XMLEncoder gives 'strange' looking XML files and 
is not very friendly for programmers to use. Someone mentioned 
successful using XSTREAM. I think it *is* better than standard 
mechanism, although it is another jar file (or even more files).

One of the most unpleasant thing about standard JDK serialization is:
if you move you class to other package (or event change its name) your 
stored files are not valid any more - you have to modify class name 
inside them. I need more stable file format. Refactoring happens 
sometimes and I don't want my customers to modify stored files after 
changes in my software.

XSTREAM allow you define 'aliases' for class names so refactoring 
problem might be solved easily. Another issue is intrinsic structure of 
generated XML. Sometimes you want to read it in text editor and change 
something. Sometimes you want to process such file using XSLT or 
something. Such tasks are easier when you have:
<OMGraphicList>
    <Point x="1.0" y="2.3"/>
    <Point x="2.0" y="4.1"/>
    <Point x="5.3" y="1.3"/>
</OMGraphicList>

instead of

<void property="graphicList">
    <void property="targets">
     <void method="add">
      <object class="com.bbn.openmap.omGraphics.OMSpline">
       <void property="doShapes">
        <boolean>true</boolean>
       </void>
       <void property="fillColor">
        <null/>
       </void>
     <void method="add">
      <object class="com.obrctm.modules.openmap.editor.OMDecoratedPoly">
       <array class="float" length="18">
        <void index="0">
         <float>0.950803</float>
        </void>
        <void index="1">
         <float>0.32749522</float>
        </void>
        <void index="2">
         <float>0.9492003</float>
        </void>
        <void index="3">
         <float>0.3296515</float>
        </void>
        <void index="4">
         <float>0.9495212</float>
        </void>

       </array>
    ...

To produce nice looking XML files using XSTREAM you have to write some 
additional classes but the most important thing is that you *can* do 
this. Using standard XMLEncoder you simply can't.

In our last project we have extended and enhanced OMDrawingTool. We have 
added new OMGraphic classes and one of the most important requirements 
is to store them permanently in files on disk. In my opinion other users 
of OpenMap would also gain if standard way of storing OMGraphics is 
defined and developed. It is another problem to solve and feature to be 
included in 4.7 release.

--
Piotr

> 
> - Don
> 
> 
> On Jan 7, 2006, at 8:56 AM, Piotr KamiÅ„ski wrote:
> 
>> Hi,
>>
>> I've used only Log4J. After reading some articles which compared  both 
>> libraries I chose Log4J. In my opinion it gives me more  options, more 
>> appenders, more formatters and is still under active  development. 
>> Logging built into JVM is not developed as intensively  as Log4J. As a 
>> bonus I have Chansaw - the log viewer.
>>
>> My application use many other libraries (e.g. Hibernate), which  also 
>> need logging functionality. In most of cases Log4J is used by  them, 
>> not Logging API. It also influenced my decision.
>>
>> After Java 1.4 had been released with new Logging API there were  thin 
>> wrapper developed (http://jakarta.apache.org/commons/logging).  If 
>> someone wishes to switch between different logging libraries, he  can 
>> now. I don't use it.
>>
>> Log4J was 'on the market' before Logging API, it is more mature, I  
>> think. It is the shame that Sun chose something else, not Log4J,  for 
>> its logging framework. That's my opinion.
>>
>> Now a few words about adding new jar to OpenMap. If you treat  OpenMap 
>> as a self-sufficient application then adding log4j is not  very 
>> appropriate. In my case OpenMap.jar is one 20 other 3rd  parties jars 
>> not including our own libraries. Having non-standard  logging in 
>> OpenMap is more problematic to me than having one jar  file more.
>>
>> So I think that 4 implementations of Debug class would satisfy  everyone:
>>    1 - the old one - for usage in applets
>>    2 - using Java 1.4 Logging API - no additional jars required
>>    3 - using Log4J - for Log4J fans ;-)
>>    4 - using Jakarta Logging wrapper - for persons wishing to  switch 
>> between different logging implementations
>>
>> For me having 1st and 3rd option is enough.
>>
>> -- 
>> Piotr
>>
>>
>> Don Dietrick napisaÅ‚(a):
>>
>>> Hi Geir,
>>> First, I agree that Debug needs to be replaced, and 4.7 would be  an  
>>> ideal time to do it.  The main reason Debug is still around  is  
>>> because I haven't figured out whether to use log4j or java's  
>>> logging  mechanism, and/or using Piotr's suggestion of making  Debug 
>>> a wrapper  for either.
>>> Is there a reason to use log4j over the logging mechanism built  
>>> into  Java?  I've used both but not enough to choose one over the  
>>> other  based on some capability one has over the other.  I can see  a 
>>> benefit  to not having to deal with yet another jar file,  however, 
>>> which makes  the java logger more attractive to me.
>>> Is one faster than the other, or does one take up fewer  resources?   
>>> I've read several articles written that compares the  two, but I 
>>> still  can find or remember an obvious answer.
>>> - Don
>>> On Jan 6, 2006, at 2:05 AM, Geir Ã˜vsttun (AS/ETO) wrote:
>>>
>>>> Hi all,
>>>>
>>>> I have a point on the OpenMap wishlist (4.7 ?) :
>>>>
>>>> A modernized revamped logging component in OpenMap
>>>>
>>>> My proposal is Log4J (THE open source logging component)
>>>> http://logging.apache.org/log4j/docs/
>>>> (which I guess most of us are using anyway in the rest of our code)
>>>>
>>>> It combines extreme ease of use with extreme logging flexilibility
>>>>
>>>> Comments anyone ?
>>>>
>>>> Geir
>>>
>>> -- 
>>> [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"]

--
[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"]


From mail Mon Jan  9 21:07:59 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0A27xb16664
	for openmap-users-archive; Mon, 9 Jan 2006 21:07:59 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0A27x216661
	for <openmap-users@openmap.bbn.com>; Mon, 9 Jan 2006 21:07:59 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0A25nY03885
	for openmap-users-outgoing; Mon, 9 Jan 2006 21:05:49 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=yahoo.com;
  h=Message-ID:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding;
  b=N/Fj3XbhOs4wmEOIduzVB6W8RZuh7RXfnJgz7LKpmi18oIUy0rO8MTu+PqhsVd7n9Mghq+zYFMGMdHMzhLGbD/niHcCCIW8ADCh81/1Xp0mQQWzd/9hzEERPWAlRqSiA/Bxz/1Gz/ngQI29rhW3VwM5rJ0pvTQSaQfPToKd6iQs=  ;
Message-ID: <20060110015838.16332.qmail@web51805.mail.yahoo.com>
Date: Mon, 9 Jan 2006 17:58:38 -0800 (PST)
From: David Ward <synriga@yahoo.com>
Subject: Re: [OpenMap Users] Log4J in OpenMap
To: Piotr "KamiÅski" <Piotr.Kaminski@ctm.gdynia.pl>,
   Don Dietrick <dietrick@bbn.com>,
   "'openmap-users@bbn.com'" <openmap-users@bbn.com>
In-Reply-To: <43C30860.60307@ctm.gdynia.pl>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:06:40 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Mon, 09 Jan 2006 21:05:25 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Piotr,

I think that Log4J and other logging tools are overkill most of the
time. In our project we started out using a simple debug class for
logging that we created to suit our needs. It was relatively small and
had a convienient frame that you could popup during program execution
so you could turn on an off any registered debug flags. This was very
useful in the early stages of our implementation. As the project
progressed we began to use it les and less and began to remove
references to our debug class. Just this week I removed the last
reference to the old debug class. We have no plans on using any
logger/debug class in the future.  We now do all of our debugging in
the IDE. 

I made an initial implementation using XStream for serializing to XML.
There were a couple of modifications required for a few of the
OMGraphic classes that we use in our application (I forwarded the
changes to Don). 

We had to abandon the use of XStream for serialization due to the
resulting voluminous files.  While I prefered the XStream approach for
the serialization, we had a major stumbling block in when it came to
documenting the format (schema) of the XML. We have external programs
(not written in Java) that generate graphics data that our application
(that is Java) consumes. It was far too overwhelming to document the
format so the extermal program could produce valid XML. 

Our solution was to create a well documented schema for the OMGraphics
that we use, implement a reader that consumes the XML stream and
produces an OMGraphic list and writer that consumes OMGraphics
producing the XML stream. We chose this approach as it was a better
alternative than to making sweeping changes to the OpenMap code base to
accommodate the XML streaming. At present we stream the following:
OMPoint, OMDistance, OMLine, OMPoly, OMSpline, OMCircle, OMRect, and
OMText. We will be changing the design to permit registering handlers
that encode and decode an OMGraphic.  

Cheers,
David




--- Piotr KamiÅ„ski <Piotr.Kaminski@ctm.gdynia.pl> wrote:

> Hi Don,
> 
> Don Dietrick napisaÅ‚(a):
> > Hi Piotr,
> > 
> > Thanks for the insight into your decision.  My first instinct is to
>  
> > wrap the commons logging classes into the OpenMap package (within  
> > openmap.jar), so that log4j is used if it's available, and the jdk 
> 
> > logging used if not.  Does that seem like a good idea?
> > 
> 
> Because Jakarta Commons Logging is rather small library you could
> embed 
>   it into OpenMap.jar. It is not the way I prefer, but I understand
> your 
> objectives. As long as I could use log4j I am happy :-)
> 
> It may be useful for users to have simple log4j.properties (and its
> JDK
> Logging API equivalent) attached to OpenMap distribution. Talking
> about 
> configuration: it is important to me to have mechanism of specifying 
> exact location of log4j.properties. I have already configured my 
> application to use log4j and I would prefer to just add some entries
> in 
> existing configuration file than adding the new one. (As I remember I
> 
> was able to use the same configuration file for my code and Hibernate
> 
> internal logging - so it is doable).
> 
> > Are you using Hibernate to store OMGraphics?
> > 
> 
> I depends:
>    Not, I haven't used Hibernate to store OMGraphics directly - I
> stored 
> my own POJO's business objects.
>    Yes, I have stored OMGraphicList serialized into XML in BLOBs
> using 
> Hibernate.
> 
> This is off-topic but I think that it is important one:
> 
> In fact I am not very happy with current XML serialization of
> OMGraphics 
> classes. Standard JDK XMLEncoder gives 'strange' looking XML files
> and 
> is not very friendly for programmers to use. Someone mentioned 
> successful using XSTREAM. I think it *is* better than standard 
> mechanism, although it is another jar file (or even more files).
> 
> One of the most unpleasant thing about standard JDK serialization is:
> if you move you class to other package (or event change its name)
> your 
> stored files are not valid any more - you have to modify class name 
> inside them. I need more stable file format. Refactoring happens 
> sometimes and I don't want my customers to modify stored files after 
> changes in my software.
> 
> XSTREAM allow you define 'aliases' for class names so refactoring 
> problem might be solved easily. Another issue is intrinsic structure
> of 
> generated XML. Sometimes you want to read it in text editor and
> change 
> something. Sometimes you want to process such file using XSLT or 
> something. Such tasks are easier when you have:
> <OMGraphicList>
>     <Point x="1.0" y="2.3"/>
>     <Point x="2.0" y="4.1"/>
>     <Point x="5.3" y="1.3"/>
> </OMGraphicList>
> 
> instead of
> 
> <void property="graphicList">
>     <void property="targets">
>      <void method="add">
>       <object class="com.bbn.openmap.omGraphics.OMSpline">
>        <void property="doShapes">
>         <boolean>true</boolean>
>        </void>
>        <void property="fillColor">
>         <null/>
>        </void>
>      <void method="add">
>       <object
> class="com.obrctm.modules.openmap.editor.OMDecoratedPoly">
>        <array class="float" length="18">
>         <void index="0">
>          <float>0.950803</float>
>         </void>
>         <void index="1">
>          <float>0.32749522</float>
>         </void>
>         <void index="2">
>          <float>0.9492003</float>
>         </void>
>         <void index="3">
>          <float>0.3296515</float>
>         </void>
>         <void index="4">
>          <float>0.9495212</float>
>         </void>
> 
>        </array>
>     ...
> 
> To produce nice looking XML files using XSTREAM you have to write
> some 
> additional classes but the most important thing is that you *can* do 
> this. Using standard XMLEncoder you simply can't.
> 
> In our last project we have extended and enhanced OMDrawingTool. We
> have 
> added new OMGraphic classes and one of the most important
> requirements 
> is to store them permanently in files on disk. In my opinion other
> users 
> of OpenMap would also gain if standard way of storing OMGraphics is 
> defined and developed. It is another problem to solve and feature to
> be 
> included in 4.7 release.
> 
> --
> Piotr
> 
> > 
> > - Don
> > 
> > 
> > On Jan 7, 2006, at 8:56 AM, Piotr KamiÅ„ski wrote:
> > 
> >> Hi,
> >>
> >> I've used only Log4J. After reading some articles which compared 
> both 
> >> libraries I chose Log4J. In my opinion it gives me more  options,
> more 
> >> appenders, more formatters and is still under active  development.
> 
> >> Logging built into JVM is not developed as intensively  as Log4J.
> As a 
> >> bonus I have Chansaw - the log viewer.
> >>
> >> My application use many other libraries (e.g. Hibernate), which 
> also 
> >> need logging functionality. In most of cases Log4J is used by 
> them, 
> >> not Logging API. It also influenced my decision.
> >>
> >> After Java 1.4 had been released with new Logging API there were 
> thin 
> >> wrapper developed (http://jakarta.apache.org/commons/logging).  If
> 
> >> someone wishes to switch between different logging libraries, he 
> can 
> >> now. I don't use it.
> >>
> >> Log4J was 'on the market' before Logging API, it is more mature, I
>  
> >> think. It is the shame that Sun chose something else, not Log4J, 
> for 
> >> its logging framework. That's my opinion.
> >>
> >> Now a few words about adding new jar to OpenMap. If you treat 
> OpenMap 
> >> as a self-sufficient application then adding log4j is not  very 
> >> appropriate. In my case OpenMap.jar is one 20 other 3rd  parties
> jars 
> >> not including our own libraries. Having non-standard  logging in 
> >> OpenMap is more problematic to me than having one jar  file more.
> >>
> >> So I think that 4 implementations of Debug class would satisfy 
> everyone:
> >>    1 - the old one - for usage in applets
> >>    2 - using Java 1.4 Logging API - no additional jars required
> >>    3 - using Log4J - for Log4J fans ;-)
> >>    4 - using Jakarta Logging wrapper - for persons wishing to 
> switch 
> >> between different logging implementations
> >>
> >> For me having 1st and 3rd option is enough.
> >>
> >> -- 
> >> Piotr
> >>
> >>
> >> Don Dietrick napisaÅ‚(a):
> >>
> >>> Hi Geir,
> >>> First, I agree that Debug needs to be replaced, and 4.7 would be 
> an  
> >>> ideal time to do it.  The main reason Debug is still around  is  
> >>> because I haven't figured out whether to use log4j or java's  
> >>> logging  mechanism, and/or using Piotr's suggestion of making 
> Debug 
> >>> a wrapper  for either.
> >>> Is there a reason to use log4j over the logging mechanism built  
> >>> into  Java?  I've used both but not enough to choose one over the
>  
> >>> other  based on some capability one has over the other.  I can
> see  a 
> >>> benefit  to not having to deal with yet another jar file, 
> however, 
> >>> which makes  the java logger more attractive to me.
> >>> Is one faster than the other, or does one take up fewer 
> resources?   
> >>> I've read several articles written that compares the  two, but I 
> >>> still  can find or remember an obvious answer.
> >>> - Don
> >>> On Jan 6, 2006, at 2:05 AM, Geir Ã˜vsttun (AS/ETO) wrote:
> >>>
> >>>> Hi all,
> >>>>
> >>>> I have a point on the OpenMap wishlist (4.7 ?) :
> >>>>
> >>>> A modernized revamped logging component in OpenMap
> >>>>
> >>>> My proposal is Log4J (THE open source logging component)
> >>>> http://logging.apache.org/log4j/docs/
> >>>> (which I guess most of us are using anyway in the rest of our
> code)
> >>>>
> >>>> It combines extreme ease of use with extreme logging
> flexilibility
> >>>>
> >>>> Comments anyone ?
> >>>>
> >>>> Geir
> >>>
> >>> -- 
> >>> [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"]
> 
> --
> [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"]
> 


----
David Ward
ROLANDS & ASSOCIATES Corporation
500 Sloat Avenue
Monterey, CA 93940
USA
Tel: 1.831.373.2025
Fax: 1.831.373.2841
Email: synriga@yahoo.com

--
[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"]


From mail Tue Jan 10 02:57:48 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0A7vmE18614
	for openmap-users-archive; Tue, 10 Jan 2006 02:57:48 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0A7vm218611
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 02:57:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0A7tUw05696
	for openmap-users-outgoing; Tue, 10 Jan 2006 02:55:30 -0500 (EST)
Message-ID: <43C361B0.1010709@navicon.dk>
Date: Tue, 10 Jan 2006 08:26:40 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Organization: NAVICON A/S
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Fedora/1.7.12-1.5.1
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: openmap questions <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com>
In-Reply-To: <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Tue, 10 Jan 2006 02:55:20 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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?

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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 07:10:29 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0ACATs20851
	for openmap-users-archive; Tue, 10 Jan 2006 07:10:29 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0ACAT220848
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 07:10:29 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AC83B08148
	for openmap-users-outgoing; Tue, 10 Jan 2006 07:08:03 -0500 (EST)
Message-ID: <43C3A361.2090305@ctm.gdynia.pl>
Date: Tue, 10 Jan 2006 13:06:57 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Log4J in OpenMap
References: <20060110015838.16332.qmail@web51805.mail.yahoo.com>
In-Reply-To: <20060110015838.16332.qmail@web51805.mail.yahoo.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Tue, 10 Jan 2006 07:07:51 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

David,
I use log4j even I have debugger in my IDE. I treat it as additional tool.

I've proposed XSTREAM because I thought that using this library you 
*can* generate documents
for which XML-Schema could be also generated. I don't have such 
experiance as you have.

I didn't write this but I also think that the prefered way to store 
OMGraphic is XML Schema defined format
not bound directly to OMGraphic classes. So you solution goes further 
than my proposition and it goes in good
direction. Would it be possible to opensource your code and add it to 
OpenMap source tree? Does this code
depends on other libraries (or just use SAX/DOM parser)?

--
Piotr

David Ward napisaÅ‚(a):

>Piotr,
>
>I think that Log4J and other logging tools are overkill most of the
>time. In our project we started out using a simple debug class for
>logging that we created to suit our needs. It was relatively small and
>had a convienient frame that you could popup during program execution
>so you could turn on an off any registered debug flags. This was very
>useful in the early stages of our implementation. As the project
>progressed we began to use it les and less and began to remove
>references to our debug class. Just this week I removed the last
>reference to the old debug class. We have no plans on using any
>logger/debug class in the future.  We now do all of our debugging in
>the IDE. 
>
>I made an initial implementation using XStream for serializing to XML.
>There were a couple of modifications required for a few of the
>OMGraphic classes that we use in our application (I forwarded the
>changes to Don). 
>
>We had to abandon the use of XStream for serialization due to the
>resulting voluminous files.  While I prefered the XStream approach for
>the serialization, we had a major stumbling block in when it came to
>documenting the format (schema) of the XML. We have external programs
>(not written in Java) that generate graphics data that our application
>(that is Java) consumes. It was far too overwhelming to document the
>format so the extermal program could produce valid XML. 
>
>Our solution was to create a well documented schema for the OMGraphics
>that we use, implement a reader that consumes the XML stream and
>produces an OMGraphic list and writer that consumes OMGraphics
>producing the XML stream. We chose this approach as it was a better
>alternative than to making sweeping changes to the OpenMap code base to
>accommodate the XML streaming. At present we stream the following:
>OMPoint, OMDistance, OMLine, OMPoly, OMSpline, OMCircle, OMRect, and
>OMText. We will be changing the design to permit registering handlers
>that encode and decode an OMGraphic.  
>
>Cheers,
>David
>
>
>
>
>--- Piotr KamiÃ…â€žski <Piotr.Kaminski@ctm.gdynia.pl> wrote:
>
>  
>
>>Hi Don,
>>
>>Don Dietrick napisaÃ…â€š(a):
>>    
>>
>>>Hi Piotr,
>>>
>>>Thanks for the insight into your decision.  My first instinct is to
>>>      
>>>
>> 
>>    
>>
>>>wrap the commons logging classes into the OpenMap package (within  
>>>openmap.jar), so that log4j is used if it's available, and the jdk 
>>>      
>>>
>>>logging used if not.  Does that seem like a good idea?
>>>
>>>      
>>>
>>Because Jakarta Commons Logging is rather small library you could
>>embed 
>>  it into OpenMap.jar. It is not the way I prefer, but I understand
>>your 
>>objectives. As long as I could use log4j I am happy :-)
>>
>>It may be useful for users to have simple log4j.properties (and its
>>JDK
>>Logging API equivalent) attached to OpenMap distribution. Talking
>>about 
>>configuration: it is important to me to have mechanism of specifying 
>>exact location of log4j.properties. I have already configured my 
>>application to use log4j and I would prefer to just add some entries
>>in 
>>existing configuration file than adding the new one. (As I remember I
>>
>>was able to use the same configuration file for my code and Hibernate
>>
>>internal logging - so it is doable).
>>
>>    
>>
>>>Are you using Hibernate to store OMGraphics?
>>>
>>>      
>>>
>>I depends:
>>   Not, I haven't used Hibernate to store OMGraphics directly - I
>>stored 
>>my own POJO's business objects.
>>   Yes, I have stored OMGraphicList serialized into XML in BLOBs
>>using 
>>Hibernate.
>>
>>This is off-topic but I think that it is important one:
>>
>>In fact I am not very happy with current XML serialization of
>>OMGraphics 
>>classes. Standard JDK XMLEncoder gives 'strange' looking XML files
>>and 
>>is not very friendly for programmers to use. Someone mentioned 
>>successful using XSTREAM. I think it *is* better than standard 
>>mechanism, although it is another jar file (or even more files).
>>
>>One of the most unpleasant thing about standard JDK serialization is:
>>if you move you class to other package (or event change its name)
>>your 
>>stored files are not valid any more - you have to modify class name 
>>inside them. I need more stable file format. Refactoring happens 
>>sometimes and I don't want my customers to modify stored files after 
>>changes in my software.
>>
>>XSTREAM allow you define 'aliases' for class names so refactoring 
>>problem might be solved easily. Another issue is intrinsic structure
>>of 
>>generated XML. Sometimes you want to read it in text editor and
>>change 
>>something. Sometimes you want to process such file using XSLT or 
>>something. Such tasks are easier when you have:
>><OMGraphicList>
>>    <Point x="1.0" y="2.3"/>
>>    <Point x="2.0" y="4.1"/>
>>    <Point x="5.3" y="1.3"/>
>></OMGraphicList>
>>
>>instead of
>>
>><void property="graphicList">
>>    <void property="targets">
>>     <void method="add">
>>      <object class="com.bbn.openmap.omGraphics.OMSpline">
>>       <void property="doShapes">
>>        <boolean>true</boolean>
>>       </void>
>>       <void property="fillColor">
>>        <null/>
>>       </void>
>>     <void method="add">
>>      <object
>>class="com.obrctm.modules.openmap.editor.OMDecoratedPoly">
>>       <array class="float" length="18">
>>        <void index="0">
>>         <float>0.950803</float>
>>        </void>
>>        <void index="1">
>>         <float>0.32749522</float>
>>        </void>
>>        <void index="2">
>>         <float>0.9492003</float>
>>        </void>
>>        <void index="3">
>>         <float>0.3296515</float>
>>        </void>
>>        <void index="4">
>>         <float>0.9495212</float>
>>        </void>
>>
>>       </array>
>>    ...
>>
>>To produce nice looking XML files using XSTREAM you have to write
>>some 
>>additional classes but the most important thing is that you *can* do 
>>this. Using standard XMLEncoder you simply can't.
>>
>>In our last project we have extended and enhanced OMDrawingTool. We
>>have 
>>added new OMGraphic classes and one of the most important
>>requirements 
>>is to store them permanently in files on disk. In my opinion other
>>users 
>>of OpenMap would also gain if standard way of storing OMGraphics is 
>>defined and developed. It is another problem to solve and feature to
>>be 
>>included in 4.7 release.
>>
>>--
>>Piotr
>>
>>    
>>
>>>- Don
>>>
>>>
>>>On Jan 7, 2006, at 8:56 AM, Piotr KamiÃ…â€žski wrote:
>>>
>>>      
>>>
>>>>Hi,
>>>>
>>>>I've used only Log4J. After reading some articles which compared 
>>>>        
>>>>
>>both 
>>    
>>
>>>>libraries I chose Log4J. In my opinion it gives me more  options,
>>>>        
>>>>
>>more 
>>    
>>
>>>>appenders, more formatters and is still under active  development.
>>>>        
>>>>
>>>>Logging built into JVM is not developed as intensively  as Log4J.
>>>>        
>>>>
>>As a 
>>    
>>
>>>>bonus I have Chansaw - the log viewer.
>>>>
>>>>My application use many other libraries (e.g. Hibernate), which 
>>>>        
>>>>
>>also 
>>    
>>
>>>>need logging functionality. In most of cases Log4J is used by 
>>>>        
>>>>
>>them, 
>>    
>>
>>>>not Logging API. It also influenced my decision.
>>>>
>>>>After Java 1.4 had been released with new Logging API there were 
>>>>        
>>>>
>>thin 
>>    
>>
>>>>wrapper developed (http://jakarta.apache.org/commons/logging).  If
>>>>        
>>>>
>>>>someone wishes to switch between different logging libraries, he 
>>>>        
>>>>
>>can 
>>    
>>
>>>>now. I don't use it.
>>>>
>>>>Log4J was 'on the market' before Logging API, it is more mature, I
>>>>        
>>>>
>> 
>>    
>>
>>>>think. It is the shame that Sun chose something else, not Log4J, 
>>>>        
>>>>
>>for 
>>    
>>
>>>>its logging framework. That's my opinion.
>>>>
>>>>Now a few words about adding new jar to OpenMap. If you treat 
>>>>        
>>>>
>>OpenMap 
>>    
>>
>>>>as a self-sufficient application then adding log4j is not  very 
>>>>appropriate. In my case OpenMap.jar is one 20 other 3rd  parties
>>>>        
>>>>
>>jars 
>>    
>>
>>>>not including our own libraries. Having non-standard  logging in 
>>>>OpenMap is more problematic to me than having one jar  file more.
>>>>
>>>>So I think that 4 implementations of Debug class would satisfy 
>>>>        
>>>>
>>everyone:
>>    
>>
>>>>   1 - the old one - for usage in applets
>>>>   2 - using Java 1.4 Logging API - no additional jars required
>>>>   3 - using Log4J - for Log4J fans ;-)
>>>>   4 - using Jakarta Logging wrapper - for persons wishing to 
>>>>        
>>>>
>>switch 
>>    
>>
>>>>between different logging implementations
>>>>
>>>>For me having 1st and 3rd option is enough.
>>>>
>>>>-- 
>>>>Piotr
>>>>
>>>>
>>>>Don Dietrick napisaÃ…â€š(a):
>>>>
>>>>        
>>>>
>>>>>Hi Geir,
>>>>>First, I agree that Debug needs to be replaced, and 4.7 would be 
>>>>>          
>>>>>
>>an  
>>    
>>
>>>>>ideal time to do it.  The main reason Debug is still around  is  
>>>>>because I haven't figured out whether to use log4j or java's  
>>>>>logging  mechanism, and/or using Piotr's suggestion of making 
>>>>>          
>>>>>
>>Debug 
>>    
>>
>>>>>a wrapper  for either.
>>>>>Is there a reason to use log4j over the logging mechanism built  
>>>>>into  Java?  I've used both but not enough to choose one over the
>>>>>          
>>>>>
>> 
>>    
>>
>>>>>other  based on some capability one has over the other.  I can
>>>>>          
>>>>>
>>see  a 
>>    
>>
>>>>>benefit  to not having to deal with yet another jar file, 
>>>>>          
>>>>>
>>however, 
>>    
>>
>>>>>which makes  the java logger more attractive to me.
>>>>>Is one faster than the other, or does one take up fewer 
>>>>>          
>>>>>
>>resources?   
>>    
>>
>>>>>I've read several articles written that compares the  two, but I 
>>>>>still  can find or remember an obvious answer.
>>>>>- Don
>>>>>On Jan 6, 2006, at 2:05 AM, Geir ÃƒËœvsttun (AS/ETO) wrote:
>>>>>
>>>>>          
>>>>>
>>>>>>Hi all,
>>>>>>
>>>>>>I have a point on the OpenMap wishlist (4.7 ?) :
>>>>>>
>>>>>>A modernized revamped logging component in OpenMap
>>>>>>
>>>>>>My proposal is Log4J (THE open source logging component)
>>>>>>http://logging.apache.org/log4j/docs/
>>>>>>(which I guess most of us are using anyway in the rest of our
>>>>>>            
>>>>>>
>>code)
>>    
>>
>>>>>>It combines extreme ease of use with extreme logging
>>>>>>            
>>>>>>
>>flexilibility
>>    
>>
>>>>>>Comments anyone ?
>>>>>>
>>>>>>Geir
>>>>>>            
>>>>>>
>>>>>-- 
>>>>>[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"]
>>>>>          
>>>>>
>>--
>>[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"]
>>
>>    
>>
>
>
>----
>David Ward
>ROLANDS & ASSOCIATES Corporation
>500 Sloat Avenue
>Monterey, CA 93940
>USA
>Tel: 1.831.373.2025
>Fax: 1.831.373.2841
>Email: synriga@yahoo.com
>  
>

--
[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"]


From mail Tue Jan 10 10:27:59 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AFRxB21804
	for openmap-users-archive; Tue, 10 Jan 2006 10:27:59 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AFRw221801
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 10:27:58 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AFMux10196
	for openmap-users-outgoing; Tue, 10 Jan 2006 10:22:56 -0500 (EST)
In-Reply-To: <43C361B0.1010709@navicon.dk>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Tue, 10 Jan 2006 10:22:46 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0AFMqU10187
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 10:40:50 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AFeoP21867
	for openmap-users-archive; Tue, 10 Jan 2006 10:40:50 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AFeo221864
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 10:40:50 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AFd3v10371
	for openmap-users-outgoing; Tue, 10 Jan 2006 10:39:03 -0500 (EST)
Message-ID: <43C3D4E7.90207@navicon.dk>
Date: Tue, 10 Jan 2006 16:38:15 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Organization: NAVICON A/S
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Fedora/1.7.12-1.5.1
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: openmap questions <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com>
In-Reply-To: <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Tue, 10 Jan 2006 10:38:53 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 11:17:38 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AGHcO22114
	for openmap-users-archive; Tue, 10 Jan 2006 11:17:38 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AGHc222111
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 11:17:38 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AGFEh11164
	for openmap-users-outgoing; Tue, 10 Jan 2006 11:15:14 -0500 (EST)
In-Reply-To: <43C3D4E7.90207@navicon.dk>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Tue, 10 Jan 2006 11:15:05 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0AGFAU11155
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 11:42:33 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AGgXC22236
	for openmap-users-archive; Tue, 10 Jan 2006 11:42:33 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AGgX222233
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 11:42:33 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AGe6e11600
	for openmap-users-outgoing; Tue, 10 Jan 2006 11:40:06 -0500 (EST)
Message-ID: <43C3E33D.5040203@navicon.dk>
Date: Tue, 10 Jan 2006 17:39:25 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Organization: NAVICON A/S
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Fedora/1.7.12-1.5.1
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: openmap questions <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk> <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com>
In-Reply-To: <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 01:01:28 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Tue, 10 Jan 2006 11:39:54 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 12:48:04 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AHm4Y22594
	for openmap-users-archive; Tue, 10 Jan 2006 12:48:04 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AHm4222591
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 12:48:04 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AHjiP12921
	for openmap-users-outgoing; Tue, 10 Jan 2006 12:45:44 -0500 (EST)
In-Reply-To: <43C3E33D.5040203@navicon.dk>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk> <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com> <43C3E33D.5040203@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Tue, 10 Jan 2006 12:45:32 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0AHjcU12912
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 16:03:41 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AL3fc24277
	for openmap-users-archive; Tue, 10 Jan 2006 16:03:41 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AL3e224274
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 16:03:41 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AL0en16924
	for openmap-users-outgoing; Tue, 10 Jan 2006 16:00:40 -0500 (EST)
Message-ID: <DE16E20AEE238745B2B5B0D8291CFDFF0146446C@CRA-EXCHANGE>
From: Chris Hopkins <chopkins@cra.com>
To: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: [OpenMap Users] Adding a zoom area window
Date: Tue, 10 Jan 2006 15:43:05 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_000_01C61626.750BE540"
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 00:15:18 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Tue, 10 Jan 2006 16:00:30 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C61626.750BE540
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C61626.750BE540"


------_=_NextPart_001_01C61626.750BE540
Content-Type: text/plain

Hi all -

 

I'm trying to create a zoom window that can be popped up to create a zoomed
view of what is going on. Sort of like picture in a picture for your TV. The
attached picture gives an idea of what I want to create. Does the overview
map allow for this? My concern is that I'm not sure if the overview map
would display the objects that are part of the layers on the base map.

 

Has anyone attempted this?

 

Thanks,

Chris

 


------_=_NextPart_001_01C61626.750BE540
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hi all -<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I'm trying to create a zoom window that can be =
popped
up to create a zoomed view of what is going on. Sort of like picture in =
a
picture for your TV. The attached picture gives an idea of what I want =
to
create. Does the overview map allow for this? My concern is that I'm =
not
sure if the overview map would display the objects that are part of the =
layers
on the base map.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Has anyone attempted =
this?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Thanks,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Chris<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C61626.750BE540--

------_=_NextPart_000_01C61626.750BE540
Content-Type: application/octet-stream;
	name="zoomwindow.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="zoomwindow.PNG"

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
O+2S279x0tmf/MYpdzwv45lza4oGbw537R+75GHLbpH3iicG/nhv1+uS8Zt3u354uexzpz3+5ZOu
u+DO1te75tdrAG262AHV3CV/ffxr//eTL37j+1/+5olf/uYPv3jc97/yrZN2s61sY3rTOwVP3K79
LlinaPdmXz/6xK04i21IPHDIdu9emVQ1ev2j7Vfcw/vLbW1/uOaZX/35wf/79Q1f+MZvPvON0z/9
413QA8Btgv8BOsGqtxWSixOiFMEP5DiTfs6EnzMZWJ78PE9AOJ8iIW+D6dFidB1Gv0WvhQjNYOui
8Ag+ACrBEsaUrruzRaYSLCThDbv2MJckGBqDWt4RjwWKfuYaLAgEktzKF4/63wOxlOSWbl/93k9/
9o2f/BxJrrG9kHzzGpLkYDh8rSvwuipIpde6/K92+eGbZQlsD2Q6ckzxyDdPWTx3nzKgHoqbPCn4
sPgldeR+9bJU/JJKS/NcO9sVx5BZdYfe6Am/0ROB/+EzfLMkq8Ab3eE3ukNrlvDNrMjyhMgji5nA
8cVMFlMAfoXvX1+W85ID1CEYOxd1oGpH/QrZQqJOhPyheJuUZPGib+a5VklWClW8WargIU1wZC7D
6Au9uuQmrlT1zeKtUHvDX5ffsjfruNb3SxTYyiXWqtSqJhEEsr/ySe2vr299RTJ+oCeygZ6g/MGe
4N2vGE++ovXVTn+xGWxUHij2Hq7pt1fc9/3f33DSH24+6Vwy/aj4P/z6vTOv2bVP3apLrZnJG+rg
y0r/XftHzrij/8RLDn//d7d961e3f+PUu75xyt9OueLFu1+zHNBEyJawcR2PNLDFxyHwaudCqQ1G
FYQHzTiR1LgSLynWeB7h0od6Y09xhs654ZUfnv3k9//w1DfOeeqbZz71rd8+dewvn/r8L57+3E8f
/+RJd333D7vh6Qat4JGHd4+SSQ7MY3FC4I2yx2bE1uFudVe3qpP8/82k6lar2wVcRruUP+knIQyc
tAHSrXiNLka8Fs7FDstVvd2dRQe8Sw1dwElZl8sp4LAZonb+2JwwkqvlmjlqSd/QGJPHbxfwpqfG
MlkocCP5jkeSW8OEXOd7IG7dz3j3+96/6Hlk0TgHhjqAPCS5ZiA5GPlekM+/JF+AtE/ph8HpZWWA
/L/zzfRKp/9oCrzSSaZ9Cj91ytK0T7FApRVfvtwJGS5J5K9+OIz8fkVSBl5afvrqq9TjNwootr8G
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
7v8DK0Za5G38YvQAAAAASUVORK5CYII=

------_=_NextPart_000_01C61626.750BE540--

--
[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"]


From mail Tue Jan 10 18:02:31 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0AN2Vv25110
	for openmap-users-archive; Tue, 10 Jan 2006 18:02:31 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0AN2V225107
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 18:02:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0AMxxS19181
	for openmap-users-outgoing; Tue, 10 Jan 2006 17:59:59 -0500 (EST)
Message-ID: <43C43C40.7090100@ctm.gdynia.pl>
Date: Tue, 10 Jan 2006 23:59:12 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: openmap questions <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk> <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com> <43C3E33D.5040203@navicon.dk> <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com>
In-Reply-To: <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Tue, 10 Jan 2006 17:59:46 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Jan 10 18:12:21 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0ANCLJ25201
	for openmap-users-archive; Tue, 10 Jan 2006 18:12:21 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0ANCL225198
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 18:12:21 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0ANARi19456
	for openmap-users-outgoing; Tue, 10 Jan 2006 18:10:27 -0500 (EST)
Message-ID: <43C43ED1.6080402@ctm.gdynia.pl>
Date: Wed, 11 Jan 2006 00:10:09 +0100
From: =?ISO-8859-2?Q?Piotr_Kami=F1ski?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: [OpenMap Users] Problem with decorated OMPoly
Content-Type: multipart/mixed;
 boundary="------------000708050902010006050903"
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Tue, 10 Jan 2006 18:10:18 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.
--------------000708050902010006050903
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 7bit

Hi Don,

With my last project I have to create OMPolys with decorations. In 
general it works fine but there are strange behaviors near the corners.
It is especially visible with acute angles (see attached picture) and 
when decoration pattern is longer one. At the picture I draw yellow line 
which I expect to see instead empty place near corners. Maybe decorated 
lines and decoration pattern should support something like 
ComplementPattern which might be used if distance to corner is shorter 
than size of the pattern. In most cases simple extension of line would 
be sufficient.

I used decorated poly to draw special areas (e.g. anchorage). Such 
deformation caused by decoration changes the overall shape of those 
areas. It is not appropriate.

--
Piotr

--------------000708050902010006050903
Content-Type: image/png;
 name="decoratedOMPoly.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="decoratedOMPoly.PNG"

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
rq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJ
SiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOA
AAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAAB
AgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQ
IJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhN
QIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO
0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfU
Q4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECA
AAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIE
CBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQ
qE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBA
jE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6t
R9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUok
QIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAAB
AgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIE
CBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQ
QECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCM
rq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJ
SiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOA
AAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAAB
AgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQ
IJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhN
QIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO
0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfU
Q4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECA
AAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIE
CBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQ
qE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBA
jE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6t
R9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUok
QIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAAB
AgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIE
CBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQ
QECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCM
rq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJ
SiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOA
AAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAAB
AgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQ
IJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhN
QIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO
0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfU
Q4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECA
AAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIE
CBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQ
qE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBA
jE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6t
R9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUok
QIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAAB
AgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIE
CBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQ
QECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCM
rq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJ
SiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOA
AAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAAB
AgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQ
IJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhN
QIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO
0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfU
Q4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECA
AAECBAgQqE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIE
CBAgkEBAjE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQ
qE1AjK6tR9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBA
jE7QSUokQIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6t
R9RDgAABAgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUok
QIAAAQIECBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAAB
AgQIECCQQECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIE
CBCoTUCMrq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE1AjK6tR9RDgAABAgQIECCQ
QECMTtBJSiRAgAABAgQIEKhNQIyurUfUQ4AAAQIECBAgkEBAjE7QSUokQIAAAQIECBCoTUCM
rq1H1EOAAAECBAgQIJBAQIxO0ElKJECAAAECBAgQqE3g/wOeaiPQ22KtVAAAAABJRU5ErkJg
gg==
--------------000708050902010006050903--

--
[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"]


From mail Tue Jan 10 18:13:28 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0ANDSG25215
	for openmap-users-archive; Tue, 10 Jan 2006 18:13:28 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0ANDS225212
	for <openmap-users@openmap.bbn.com>; Tue, 10 Jan 2006 18:13:28 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0ANBne19491
	for openmap-users-outgoing; Tue, 10 Jan 2006 18:11:49 -0500 (EST)
In-Reply-To: <43C43C40.7090100@ctm.gdynia.pl>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk> <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com> <43C3E33D.5040203@navicon.dk> <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com> <43C43C40.7090100@ctm.gdynia.pl>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=UTF-8; delsp=yes; format=flowed
Message-Id: <955F473E-3213-4C28-94D8-932B36C898AC@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Tue, 10 Jan 2006 18:11:35 -0500
To: =?UTF-8?Q?Piotr_Kami=C5=84ski?= <Piotr.Kaminski@ctm.gdynia.pl>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0ANBcU19482
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Piotr,

I think Carsten's problem is different, because it deals with the  
EditorLayer, and changing mouse modes halts editing of the OMGraphics  
(and there's no editing of drawing attributes).

I do know about these two problems you describe, though, and I  
haven't been able to track them down.  Yet.

- Don


On Jan 10, 2006, at 5:59 PM, Piotr KamiÅ„ski wrote:

> 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@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@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@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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Jan 11 03:04:08 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0B848G28636
	for openmap-users-archive; Wed, 11 Jan 2006 03:04:08 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0B848228633
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 03:04:08 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0B80uk25420
	for openmap-users-outgoing; Wed, 11 Jan 2006 03:00:56 -0500 (EST)
Message-ID: <43C4BB24.6060207@navicon.dk>
Date: Wed, 11 Jan 2006 09:00:36 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Organization: NAVICON A/S
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Fedora/1.7.12-1.5.1
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: openmap questions <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk> <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com> <43C3E33D.5040203@navicon.dk> <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com>
In-Reply-To: <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Wed, 11 Jan 2006 03:00:45 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Jan 11 08:35:27 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BDZRD31028
	for openmap-users-archive; Wed, 11 Jan 2006 08:35:27 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BDZQ231025
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 08:35:26 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BDWYZ29827
	for openmap-users-outgoing; Wed, 11 Jan 2006 08:32:34 -0500 (EST)
In-Reply-To: <43C4BB24.6060207@navicon.dk>
References: <43C276D1.8090100@navicon.dk> <B539B5C4-E7BA-49AD-AB63-FD8D732050ED@bbn.com> <43C2CB7D.30301@navicon.dk> <9B7B2299-0D47-4DB7-9B54-2D2D6134A2B6@bbn.com> <43C361B0.1010709@navicon.dk> <528B3186-FC9F-4975-88FE-73F532B93B33@bbn.com> <43C3D4E7.90207@navicon.dk> <2A53BF9D-010C-46A7-9DAF-2787C3B3F06B@bbn.com> <43C3E33D.5040203@navicon.dk> <4BB90299-CC38-416C-AB85-22FB253492D5@bbn.com> <43C4BB24.6060207@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <F919D1CD-0E41-4B4A-9E4C-90A061EAD91C@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Customizing editor toolbar?
Date: Wed, 11 Jan 2006 08:32:17 -0500
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0BDWTU29818
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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@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@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@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@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@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@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@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@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@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Jan 11 11:03:48 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BG3mY31917
	for openmap-users-archive; Wed, 11 Jan 2006 11:03:48 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BG3m231914
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 11:03:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BFrNg02267
	for openmap-users-outgoing; Wed, 11 Jan 2006 10:53:23 -0500 (EST)
In-Reply-To: <DE16E20AEE238745B2B5B0D8291CFDFF0146446C@CRA-EXCHANGE>
References: <DE16E20AEE238745B2B5B0D8291CFDFF0146446C@CRA-EXCHANGE>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <4EBA8E31-39E1-4ECA-AD06-2A86499375B4@bbn.com>
Cc: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Adding a zoom area window
Date: Wed, 11 Jan 2006 10:53:13 -0500
To: Chris Hopkins <chopkins@cra.com>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Chris,

I guess you could use the OverviewMap for something like this, but I  
have the feeling it might be more work than it's work.  The main  
functionality of the OverviewMapHandler is to 'sync' two MapBeans'  
projections, with some scale factor involved.  I think what you are  
doing here is something a little different.

I think you want to create a BufferedImage of the size of the popup  
window, and then render the layers into that BufferedImage (by  
passing its java.awt.Graphics object to the layers paint() method).   
Then, you can put the image into a JLabel in a Window, or have the  
image (along with the other boxes, lines) rendered on top of the  
MapBean by a PaintListener object that is listening for MapBean paints 
().

The tricky part is getting the image rendered at the new scale.  It's  
tricky because Layers and OMGraphics only expect to be rendered into  
one map, and they know the projection of that map.  Giving them other  
projections at the same time might result in their being rendered in  
the wrong place on one map or the other.  You could apply an  
AffineTransform to the image Graphics object, translating x, y  
according to the offset of the little box vs the center of the map  
and scaling accordingly, but I think that will just zoom in on the  
image without increasing detail.

The more I think about it, I would use a modified ImageServer to  
create that image.  I'd modify the ImageServer to take an  
AffineTransform to apply an x, y translation to the image Graphics.   
You want to use a copy of the MapBean's projection with a different  
scale (smaller value), and apply that x, y translation as the offset  
between the center of the image to the center of the MapBean  
projection.  This should get you the image you want.  The last thing  
you have to do is reset the projection on the Layers, so they act  
right in case the MapBean repaints itself.  For  
OMGraphicHandlerLayers, you can call layer.getList().generate 
(originalProjection).

Hope this helps,

Don

On Jan 10, 2006, at 3:43 PM, Chris Hopkins wrote:

> Hi all -
>
>
>
> I'm trying to create a zoom window that can be popped up to create  
> a zoomed view of what is going on. Sort of like picture in a  
> picture for your TV. The attached picture gives an idea of what I  
> want to create. Does the overview map allow for this? My concern is  
> that I'm not sure if the overview map would display the objects  
> that are part of the layers on the base map.
>
>
>
> Has anyone attempted this?
>
>
>
> Thanks,
>
> Chris
>
>
>
> <zoomwindow.PNG>

--
[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"]


From mail Wed Jan 11 12:43:07 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BHh7u32428
	for openmap-users-archive; Wed, 11 Jan 2006 12:43:07 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BHgV232423
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 12:42:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BHdAw04413
	for openmap-users-outgoing; Wed, 11 Jan 2006 12:39:10 -0500 (EST)
In-Reply-To: <43C43ED1.6080402@ctm.gdynia.pl>
References: <43C43ED1.6080402@ctm.gdynia.pl>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=UTF-8; delsp=yes; format=flowed
Message-Id: <5365B719-6871-4333-9863-A3691927E623@bbn.com>
Cc: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Problem with decorated OMPoly
Date: Wed, 11 Jan 2006 12:38:13 -0500
To: =?UTF-8?Q?Piotr_Kami=C5=84ski?= <Piotr.Kaminski@ctm.gdynia.pl>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0BHd8U04404
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Piotr,

I added a bug report in Bugzilla for this.

Thanks,

Don

On Jan 10, 2006, at 6:10 PM, Piotr KamiÅ„ski wrote:

> Hi Don,
>
> With my last project I have to create OMPolys with decorations. In  
> general it works fine but there are strange behaviors near the  
> corners.
> It is especially visible with acute angles (see attached picture)  
> and when decoration pattern is longer one. At the picture I draw  
> yellow line which I expect to see instead empty place near corners.  
> Maybe decorated lines and decoration pattern should support  
> something like ComplementPattern which might be used if distance to  
> corner is shorter than size of the pattern. In most cases simple  
> extension of line would be sufficient.
>
> I used decorated poly to draw special areas (e.g. anchorage). Such  
> deformation caused by decoration changes the overall shape of those  
> areas. It is not appropriate.
>
> --
> Piotr
> <decoratedOMPoly.PNG>

--
[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"]


From mail Wed Jan 11 12:44:12 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BHiCJ32439
	for openmap-users-archive; Wed, 11 Jan 2006 12:44:12 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BHiB232436
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 12:44:11 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BHgVR04476
	for openmap-users-outgoing; Wed, 11 Jan 2006 12:42:31 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=yahoo.com;
  h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding;
  b=5adTDDaapYqemDxt543oV+gqck0IleWQaTPSvTpU80MMg1VwdmSW47cL3FJPc/ZtfL/rqxoVEErblceix6EGYwM28TpRzfCFXPuXHisocwrVEToZd3auGCxBHlNda/JLUPTkq0qZlgUar5aYes+ZXY3YM1pYntcKO7KvHEThmJk=  ;
Message-ID: <20060111173537.72770.qmail@web34105.mail.mud.yahoo.com>
Date: Wed, 11 Jan 2006 09:35:37 -0800 (PST)
From: Raghu <raghav_kune@yahoo.com>
Subject: [OpenMap Users] on demand raster layer
To: openmap-users@bbn.com
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:06:41 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Wed, 11 Jan 2006 12:42:23 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

hello ,
 Is anybody experimented displaying the raster layer
on demand. pl let me know. 
 thx in advance .


regards
Raghu

Raghu (Raghavendra K)
Scientist , ADRIN(DOS,ISRO),
203,AKBAR ROAD , TARBUND , MANOVIKAS NAGAR , SECUNDERABAD .
Mob: 91-9440563501 
OFF : 91-040-27781234

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

--
[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"]


From mail Wed Jan 11 14:23:40 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BJNeZ00572
	for openmap-users-archive; Wed, 11 Jan 2006 14:23:40 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BJNe200569
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 14:23:40 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BJLkJ06446
	for openmap-users-outgoing; Wed, 11 Jan 2006 14:21:46 -0500 (EST)
Message-ID: <43C55AA6.3000704@ctm.gdynia.pl>
Date: Wed, 11 Jan 2006 20:21:10 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: Don Dietrick <dietrick@bbn.com>
CC: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Problem with decorated OMPoly
References: <43C43ED1.6080402@ctm.gdynia.pl> <5365B719-6871-4333-9863-A3691927E623@bbn.com>
In-Reply-To: <5365B719-6871-4333-9863-A3691927E623@bbn.com>
Content-Type: multipart/mixed;
 boundary="------------030000050804000304000603"
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Wed, 11 Jan 2006 14:21:36 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.
--------------030000050804000304000603
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Don,

I will appreciate if someone fix this bug for me.

I have also some other minor problems with decorations. We've made 
decorated version of almost every OMGraphic class, including OMCircle. 
When decoration pattern is big and circle radius is small what you get 
is more like polygon than circle (see attached pictures). Picture 2 and 
4 would appear much better if I could define pattern (dot or two lines) 
and distance between those patterns. Now pattern includes dot and 
fragment of lines as you can see.
(The same problem as for circle is for splines.)

I expect that solving those problems might change API but in my opinion 
it is worth doing.

--
Piotr

Don Dietrick napisaÅ‚(a):
> Hi Piotr,
> 
> I added a bug report in Bugzilla for this.
> 
> Thanks,
> 
> Don
> 
> On Jan 10, 2006, at 6:10 PM, Piotr KamiÅ„ski wrote:
> 
>> Hi Don,
>>
>> With my last project I have to create OMPolys with decorations. In  
>> general it works fine but there are strange behaviors near the  corners.
>> It is especially visible with acute angles (see attached picture)  and 
>> when decoration pattern is longer one. At the picture I draw  yellow 
>> line which I expect to see instead empty place near corners.  Maybe 
>> decorated lines and decoration pattern should support  something like 
>> ComplementPattern which might be used if distance to  corner is 
>> shorter than size of the pattern. In most cases simple  extension of 
>> line would be sufficient.
>>
>> I used decorated poly to draw special areas (e.g. anchorage). Such  
>> deformation caused by decoration changes the overall shape of those  
>> areas. It is not appropriate.
>>
>> -- 
>> Piotr
>> <decoratedOMPoly.PNG>

--------------030000050804000304000603
Content-Type: image/png;
 name="ex2.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="ex2.PNG"

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
x7tkRLO5ohtddNKIQueIzvEPMYcd0XnQh27WyewbeY6Pyo0nD7N1bTfqNPve7kHE2REgQIAA
gW4KiNFLjtEjk6Abj7Odh9nB3ezwet4XL35ipvntlTw6xxR1sfpJ1H486eW11MMtnGeMzu9u
5jUbMesc/Z6VbdRqBnr4YLo5uDhrAgQIECDQbgExutwYPZyles+yaw+zfj8P02ux2valbPdq
dnz9dNJ6Wm6+kUVcfnU7j+Mxzx25PAqyI6Ar2Khtbtapo93jprMjQIAAAQIhIEavLkZ/jlYq
LupUcbGCLG6sIUCAAAECBNonIEZXEaM7FiJXkFNr/hbtGzicEQECBAgQIJAhIECAAAECBAgQ
IEAgVUCMThXzegIECBAgQIAAAQIfxWgXAQECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo
1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAg
QIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAEx
OpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQ
IECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTE
aNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQ
IECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQB
MTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQI
ECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIE
xGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQI
ECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFk
ATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIE
CBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAEC
BMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYE
CBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACB
ZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAEC
BAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAAB
AgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwG
BAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAA
gWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wAB
AgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAA
AQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnM
BgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECA
AIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcA
AQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECA
AAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZ
zAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBA
gACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjX
AAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBA
gAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6
mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAg
QIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo
1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAg
QIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAEx
OpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQ
IECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTE
aNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQ
IECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQB
MTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQI
ECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIE
xGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQI
ECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFk
ATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIE
CBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAEC
BMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYE
CBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACB
ZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAEC
BAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAAB
AgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwG
BAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAA
gWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wAB
AgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAA
AQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnM
BgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECA
AIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcA
AQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECA
AAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZ
zAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBA
gACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjX
AAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBA
gAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6
mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAg
QIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo
1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAg
QIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAEx
OpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQ
IECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTE
aNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQ
IECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQB
MTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQI
ECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIE
xGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQI
ECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFk
ATE6mcwGBAgQIECAAAECBMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIE
CBAgQIAAgWQBMTqZzAYECBAgQIAAAQIExGjXAAECBAgQIECAAIFkATE6mcwGBAgQIECAAAEC
BMRo1wABAgQIECBAgACBZAExOpnMBgQIECBAgAABAgTEaNcAAQIECBAgQIAAgWQBMTqZzAYE
CBAgQIAAAQIExGjXAAECBAgQIECAAIFkgf8PJ6SYTYUYUAgAAAAASUVORK5CYII=
--------------030000050804000304000603
Content-Type: image/png;
 name="ex3.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="ex3.PNG"

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
IECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0
c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQ
IECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAY
XUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQI
ECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJi
tHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQI
ECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGA
GF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIE
CBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAEC
YrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIE
CBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECx
gBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAEC
BAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAAB
AmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMC
BAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBA
sYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAAB
AgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAA
AQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYD
AgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECA
QLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AA
AQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECA
AAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxm
AwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBA
gECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOA
AAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBA
gAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1M
ZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAg
QIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRz
gAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAg
QIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhd
TGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQ
IECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0
c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQ
IECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAY
XUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQI
ECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJi
tHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQI
ECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGA
GF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIE
CBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAEC
YrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIE
CBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECx
gBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAEC
BAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAAB
AmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMC
BAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBA
sYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAAB
AgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAA
AQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYD
AgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECA
QLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AA
AQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECA
AAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxm
AwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBA
gECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOA
AAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBA
gAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1M
ZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAg
QIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRz
gAABAgQIECBAgECxgBhdTGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAg
QIAAAQJitHOAAAECBAgQIECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxgBhd
TGYDAgQIECBAgAABAmK0c4AAAQIECBAgQIBAsYAYXUxmAwIECBAgQIAAAQJitHOAAAECBAgQ
IECAQLGAGF1MZgMCBAgQIECAAAECYrRzgAABAgQIECBAgECxwP8PBggnmKcQhmcAAAAASUVO
RK5CYII=
--------------030000050804000304000603
Content-Type: image/png;
 name="ex4.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="ex4.PNG"

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
BAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAEC
BAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBIL
iNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqU
vHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToB
AgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQI
ECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQI
lBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jR
iS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxx
CRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIE
CBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAg
QCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQS
EKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0Ykv
nqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQ
IECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQ
IECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAg
sYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCj
S8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56p
EyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBA
gAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBA
gEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGA
GJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJ
G5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMg
QIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAA
AQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBA
KQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid
+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuX
AAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECA
AAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAEC
BBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkB
MbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfji
mToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwAB
AgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAAB
AgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQS
C4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6
lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6
AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIE
CBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIE
CJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI
0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8
cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgEC
BAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQ
IEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiU
EhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJ
L56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJ
ECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQI
ECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBA
ILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQ
o0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+e
qRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAg
QIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAg
QIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCx
gBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNL
yRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkT
IECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECA
AAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECA
QCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAY
nfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kb
lwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBA
gAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAAB
AgQSC4jRiS+eqRMgQIAAAQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEAp
ATG6lLxxCRAgQIAAAQIEEguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ34
4pk6AQIECBAgQIBAKQExupS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cA
AQIECBAgQCCxgBid+OKZOgECBAgQIECAQCkBMbqUvHEJECBAgAABAgQSC4jRiS+eqRMgQIAA
AQIECJQSEKNLyRuXAAECBAgQIEAgsYAYnfjimToBAgQIECBAgEApATG6lLxxCRAgQIAAAQIE
EguI0YkvnqkTIECAAAECBAiUEhCjS8kblwABAgQIECBAILGAGJ344pk6AQIECBAgQIBAKQEx
upS8cQkQIECAAAECBBILiNGJL56pEyBAgAABAgQIlBIQo0vJG5cAAQIECBAgQCCxgBid+OKZ
OgECBAgQIECAQCmB/w9XcJrc0rIeIQAAAABJRU5ErkJggg==
--------------030000050804000304000603
Content-Type: image/png;
 name="ex1.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="ex1.PNG"

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
dlcqzXVxMDJfJX7E6/XNq+O6Vx58rPxOcqf+PZfF2o0PEW5fjY7bt15Wj1RddxycfXlY6VdZ
eXG50hzDqTwangGNN5+fnbODyLuL9+x34vDpBAgQIECAQNehYUcxuhyR1wN0kXtqQmfs2PLw
2sPX6fVKaJ5/Ck2/pK35rfnp+3SyjMOyKlxX5a0sG0eMKzdOFKmu8ojMt5726rJj1H2XBewY
3Xo3cHzEStNw8eZxMfHPl0dzxXpj+ly+T1xnZUG9svoeZ8UdX74+ysl1x0rKr/x7iI9uuM74
lIacvXGA+32ByYsAAQIECBDoV2AkMbr4Nb8uQBfxpaGWGedGPDqoT2DFf7Osj159GYdyhqss
4saG0pXHMjLWZcrirPlaEo2LXy5yt/7OxTXUlauL169E23jD+JTyccV18eKtoljeUNKufJA0
rqH81SKuqs5tPcWuJ+m6Qv5+E3Anxel+Jw6fToAAAQIECIwkRkcC3thR0JA7i+fYIo1VFmKL
WBYfsZKlrrKMQ7loWtn3XK7yruTCuJK42uZG4ThlpW4aZzUckdpjdCvP0q28viwcmOv9Ic17
Im4s5cYVbnxIcSW4rze6xCgqv4HU/XmsMF7xm8CQ0rbJiwABAgQIEOhXYCQxepv4UrcoXnkt
iEhRdUdlx0LrZRxWHoZbiYOb1u87jcgRKCP0x/8bbxUBNP7JnZQ+T/P76fb99PDL9Gyt+v76
Tnp+Nz26k06O0u1baX6QZnFu5PX49HifOL35WKbkyu8PcW68Q92N6KqxuPxloPLrR9FqslJ3
L3dFN9ekd9R0tM3fZ9ev6Xfi8OkECBAgQIDAhGJ0xJSVWmYkv6hcrvQqVK72ELGsYfmLlWUc
ItFurKqul73j2pZnRU6tO87y7vyrdPJtevxNev5VevllenM/fbiXfvw8/Xynzb8+3j09/fW9
9PRuehAJ+yDNI1uvd4BEhG3ujalb5qL85eSKYbGc9Rt+f1ipMW/8pWL5thtfecXr3+PpJi8C
BAgQIECgX4FpxeiVxob1DB0pJ9oV1hNkQ521CEblamsUd5t7fCMuVx7Lvuf1ong88HiUHt9L
7++1Ccot4/VRenWUHh6leeTjuLZI8A3V+hhRkbPL/4qRrphfMUcuL6Dyx4Hlm8d3nuUXleZS
9PKUInnH3b/iFQ7m9H4nDp9OgAABAgQIdJ0q+v3RvFzLrMzQRQZabzuuXPhiJTAte3+X9ex4
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
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCA
AAECBAgQyFpAjM769hs8AQIECBAgQIBAOwExup2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIE
CBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAg
awExOuvbb/AECBAgQIAAAQLtBMTodm7OIkCAAAECBAgQyFpAjM769hs8AQIECBAgQIBAOwEx
up2bswgQIECAAAECBLIWEKOzvv0GT4AAAQIECBAg0E5AjG7n5iwCBAgQIECAAIGsBcTorG+/
wRMgQIAAAQIECLQTEKPbuTmLAAECBAgQIEAgawExOuvbb/AECBAgQIAAAQLtBP5/lvqq0s9+
sNgAAAAASUVORK5CYII=
--------------030000050804000304000603--

--
[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"]


From mail Wed Jan 11 14:58:05 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BJw5w00743
	for openmap-users-archive; Wed, 11 Jan 2006 14:58:05 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BJw4200740
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 14:58:04 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BJuoX06909
	for openmap-users-outgoing; Wed, 11 Jan 2006 14:56:50 -0500 (EST)
Message-ID: <43C558A5.309@email.it>
Date: Wed, 11 Jan 2006 19:12:37 +0000
From: Luigi Trevisant <luitre@email.it>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: it, it-it, en-us, en
MIME-Version: 1.0
To: Raghu <raghav_kune@yahoo.com>
Cc: openmap-users@bbn.com
Subject: Re: [OpenMap Users] on demand raster layer
References: <20060111173537.72770.qmail@web34105.mail.mud.yahoo.com>
In-Reply-To: <20060111173537.72770.qmail@web34105.mail.mud.yahoo.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Copyrighted-Material: Please visit http://www.email.it/ita/privacy.html
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: Delayed for 01:40:47 by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Wed, 11 Jan 2006 14:56:42 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

With "on demand" you mean selecting from a FileChooser or something similar?

Raghu ha scritto:

>hello ,
> Is anybody experimented displaying the raster layer
>on demand. pl let me know. 
> thx in advance .
>
>
>regards
>Raghu
>
>Raghu (Raghavendra K)
>Scientist , ADRIN(DOS,ISRO),
>203,AKBAR ROAD , TARBUND , MANOVIKAS NAGAR , SECUNDERABAD .
>Mob: 91-9440563501 
>OFF : 91-040-27781234
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam?  Yahoo! Mail has the best spam protection around 
>http://mail.yahoo.com 
>
>--
>[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"]
>
>  
>

 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Cartucce, toner, ricariche...scegli a chi rivolgerti per la tua stampante. Clicca qui
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=4198&d=11-1

--
[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"]


From mail Wed Jan 11 16:13:06 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BLD6V01155
	for openmap-users-archive; Wed, 11 Jan 2006 16:13:06 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BLD5201151
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 16:13:05 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BLBHQ08904
	for openmap-users-outgoing; Wed, 11 Jan 2006 16:11:17 -0500 (EST)
Date: Wed, 11 Jan 2006 15:21:51 -0500
Message-Id: <200601112021.k0BKLpO10358@greenfieldeng.com>
From: "Maria Harmening" <maria.harmening@greenfieldeng.com>
To: openmap-users@bbn.com
Subject: [OpenMap Users] mouse modes
X-Mailer: NeoMail 1.25
X-IPAddress: 192.58.199.185
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: Delayed for 00:49:09 by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Wed, 11 Jan 2006 16:11:07 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

hello, all,

can anyone tell me if it's possible to set the MapMouseMode 
to "Gestures" if the user left-clicks and "Navigation" if the user 
right-clicks"?

thanks,
maria

--
[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"]


From mail Wed Jan 11 17:03:31 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0BM3VW01587
	for openmap-users-archive; Wed, 11 Jan 2006 17:03:31 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0BM3V201584
	for <openmap-users@openmap.bbn.com>; Wed, 11 Jan 2006 17:03:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0BM25m09518
	for openmap-users-outgoing; Wed, 11 Jan 2006 17:02:05 -0500 (EST)
Message-ID: <43C5801C.3060908@ctm.gdynia.pl>
Date: Wed, 11 Jan 2006 23:01:00 +0100
From: =?UTF-8?B?UGlvdHIgS2FtacWEc2tp?= <Piotr.Kaminski@ctm.gdynia.pl>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: pl, en-us, en
MIME-Version: 1.0
To: Maria Harmening <maria.harmening@greenfieldeng.com>
CC: openmap-users@bbn.com
Subject: Re: [OpenMap Users] mouse modes
References: <200601112021.k0BKLpO10358@greenfieldeng.com>
In-Reply-To: <200601112021.k0BKLpO10358@greenfieldeng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Wed, 11 Jan 2006 17:01:57 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Maria,

If you wish to just switch between mouse modes you have to:
   - extends GesturesMouseMode, detect right-click and call method 
MouseDelegator.setActiveMouseModeWithID(NavigationMouseMode.ID)
   - do similar thing with NavMouseMode: detect left-click and call 
MouseDelegator.

It should work like this: first click changes mouse mode, subsequent 
clicks are interpreted by new mouse mode.

If you wish to have both Gestures and Navigation functionality in one 
mouse mode (no switching), than you have to write your own MouseMode 
class (possibly extending one of standard mouse modes) and implement 
your logic. The problem is that standard layers respond to mouse modes 
of specific IDs. You cannot assign two different IDs to one mouse mode.
So you have to change Layer.getMouseModeServiceList method in each layer 
you are going to use with your new mouse mode.

Hope this helps a little,
Regards,
Piotr Kaminski

Maria Harmening napisaÅ‚(a):
> hello, all,
> 
> can anyone tell me if it's possible to set the MapMouseMode 
> to "Gestures" if the user left-clicks and "Navigation" if the user 
> right-clicks"?
> 
> thanks,
> maria
> 
> --
> [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"]

--
[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"]


From mail Thu Jan 12 04:10:58 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0C9AwB05694
	for openmap-users-archive; Thu, 12 Jan 2006 04:10:58 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0C9Aw205691
	for <openmap-users@openmap.bbn.com>; Thu, 12 Jan 2006 04:10:58 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0C97mk16366
	for openmap-users-outgoing; Thu, 12 Jan 2006 04:07:48 -0500 (EST)
Message-ID: <43C629A2.20505@email.it>
Date: Thu, 12 Jan 2006 10:04:18 +0000
From: Luigi Trevisant <luitre@email.it>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: it, it-it, en-us, en
MIME-Version: 1.0
To: Raghu <raghav_kune@yahoo.com>, openmap-users@bbn.com
Subject: Re: [OpenMap Users] on demand raster layer
References: <20060112023139.18454.qmail@web34102.mail.mud.yahoo.com>
In-Reply-To: <20060112023139.18454.qmail@web34102.mail.mud.yahoo.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Copyrighted-Material: Please visit http://www.email.it/ita/privacy.html
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.116
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gandalf.bbn.com [192.1.120.116]); Thu, 12 Jan 2006 04:07:34 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

I've implemented something similar in this way

Let url be the URL of the selected file.
I've the easy class ImmaginePlugIn, that simply puts the image in the
upper left corner, obviously you have to add it to a layer

Tell me if you want something different....


package com.bbn.openmap.plugin;

import java.awt.*;
import java.net.*;
import javax.swing.*;
import com.bbn.openmap.omGraphics.*;
import com.bbn.openmap.proj.*;

/**

* @author Luigi Trevisant
* @version 1.0
*/

public class ImmaginePlugIn extends AbstractPlugIn{
    ImageIcon ii;
    URL url;
    OMRaster omr;

    public ImmaginePlugIn(URL url) {
        this.url = url;
        ii = new ImageIcon(url);
       /*
          This plugin doesn't  extend the image to  fit the  map area.
           It simply puts the image in the upper left corner
       */
        if(ii != null)
            omr = new OMRaster(1,1,ii);

    }


    public OMGraphicList getRectangle(Projection p) {
        OMGraphicList list = new OMGraphicList();

        if(omr != null){
           list.add(omr);
           list.generate(p);
        }



        return list;
    }
}




Raghu ha scritto:

>hello,
> it is from a FileChooser .
>
>- Raghu
>--- Luigi Trevisant <luitre@email.it> wrote:
>
>  
>
>>With "on demand" you mean selecting from a
>>FileChooser or something similar?
>>
>>Raghu ha scritto:
>>
>>    
>>
>>>hello ,
>>>Is anybody experimented displaying the raster
>>>      
>>>
>>layer
>>    
>>
>>>on demand. pl let me know. 
>>>thx in advance .
>>>
>>>
>>>regards
>>>Raghu
>>>
>>>Raghu (Raghavendra K)
>>>Scientist , ADRIN(DOS,ISRO),
>>>203,AKBAR ROAD , TARBUND , MANOVIKAS NAGAR ,
>>>      
>>>
>>SECUNDERABAD .
>>    
>>
>>>Mob: 91-9440563501 
>>>OFF : 91-040-27781234
>>>
>>>__________________________________________________
>>>Do You Yahoo!?
>>>Tired of spam?  Yahoo! Mail has the best spam
>>>      
>>>
>>protection around 
>>    
>>
>>>http://mail.yahoo.com 
>>>
>>>--
>>>[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"]
>>    
>>
>>> 
>>>
>>>      
>>>
>> 
>> 
>> --
>> Email.it, the professional e-mail, gratis per te:
>>http://www.email.it/f
>> 
>> Sponsor:
>> Cartucce, toner, ricariche...scegli a chi
>>rivolgerti per la tua stampante. Clicca qui
>> Clicca qui:
>>
>>    
>>
>http://adv.email.it/cgi-bin/foclick.cgi?mid=4198&d=11-1
>  
>
>>--
>>[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"]
>>
>>    
>>
>
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam?  Yahoo! Mail has the best spam protection around 
>http://mail.yahoo.com 
>
>  
>


 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Vuoi proteggere la tua casa? Chiedi a Ras come, clicca e fai un preventivo online!
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=4028&d=12-1

--
[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"]


From mail Thu Jan 12 10:47:06 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0CFl6a08632
	for openmap-users-archive; Thu, 12 Jan 2006 10:47:06 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0CFl6208629
	for <openmap-users@openmap.bbn.com>; Thu, 12 Jan 2006 10:47:06 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0CFi6121115
	for openmap-users-outgoing; Thu, 12 Jan 2006 10:44:06 -0500 (EST)
In-Reply-To: <43C55AA6.3000704@ctm.gdynia.pl>
References: <43C43ED1.6080402@ctm.gdynia.pl> <5365B719-6871-4333-9863-A3691927E623@bbn.com> <43C55AA6.3000704@ctm.gdynia.pl>
Mime-Version: 1.0 (Apple Message framework v746.2)
Content-Type: text/plain; charset=UTF-8; delsp=yes; format=flowed
Message-Id: <9905241F-4052-4ED3-918D-717E29079E14@bbn.com>
Cc: "'openmap-users@bbn.com'" <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Problem with decorated OMPoly
Date: Thu, 12 Jan 2006 10:43:31 -0500
To: =?UTF-8?Q?Piotr_Kami=C5=84ski?= <Piotr.Kaminski@ctm.gdynia.pl>
X-Mailer: Apple Mail (2.746.2)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k0CFi3U21103
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Piotr,

These effects are related to your previous email with the polygon,  
arising as a result of how the decorations are laid out on the  
shape.    The decoration mechanism also needs to be updated so the  
layout of the decoration occurs in the generate() method of the  
OMGraphic as opposed to the render() step.

Please let me know if you are interested in funding these updates, as  
that would allow us to insert them into our work schedule and provide  
you an estimate on when they would be completed.

Regards,

Don

On Jan 11, 2006, at 2:21 PM, Piotr KamiÅ„ski wrote:

> Hi Don,
>
> I will appreciate if someone fix this bug for me.
>
> I have also some other minor problems with decorations. We've made  
> decorated version of almost every OMGraphic class, including  
> OMCircle. When decoration pattern is big and circle radius is small  
> what you get is more like polygon than circle (see attached  
> pictures). Picture 2 and 4 would appear much better if I could  
> define pattern (dot or two lines) and distance between those  
> patterns. Now pattern includes dot and fragment of lines as you can  
> see.
> (The same problem as for circle is for splines.)
>
> I expect that solving those problems might change API but in my  
> opinion it is worth doing.
>
> --
> Piotr
>
> Don Dietrick napisaÅ‚(a):
>> Hi Piotr,
>> I added a bug report in Bugzilla for this.
>> Thanks,
>> Don
>> On Jan 10, 2006, at 6:10 PM, Piotr KamiÅ„ski wrote:
>>> Hi Don,
>>>
>>> With my last project I have to create OMPolys with decorations.  
>>> In  general it works fine but there are strange behaviors near  
>>> the  corners.
>>> It is especially visible with acute angles (see attached  
>>> picture)  and when decoration pattern is longer one. At the  
>>> picture I draw  yellow line which I expect to see instead empty  
>>> place near corners.  Maybe decorated lines and decoration pattern  
>>> should support  something like ComplementPattern which might be  
>>> used if distance to  corner is shorter than size of the pattern.  
>>> In most cases simple  extension of line would be sufficient.
>>>
>>> I used decorated poly to draw special areas (e.g. anchorage).  
>>> Such  deformation caused by decoration changes the overall shape  
>>> of those  areas. It is not appropriate.
>>>
>>> -- 
>>> Piotr
>>> <decoratedOMPoly.PNG>
>>> <ex2.PNG>
>>> <ex3.PNG>
>>> <ex4.PNG>
>>> <ex1.PNG>

--
[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"]


From mail Thu Jan 12 11:24:22 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0CGOMx08944
	for openmap-users-archive; Thu, 12 Jan 2006 11:24:22 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0CGOL208941
	for <openmap-users@openmap.bbn.com>; Thu, 12 Jan 2006 11:24:21 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0CGLYg21825
	for openmap-users-outgoing; Thu, 12 Jan 2006 11:21:34 -0500 (EST)
Date: Thu, 12 Jan 2006 11:21:19 -0500
Message-Id: <200601121621.k0CGLJZ24144@greenfieldeng.com>
From: "Maria Harmening" <maria.harmening@greenfieldeng.com>
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] mouse modes
X-Mailer: NeoMail 1.25
X-IPAddress: 192.58.199.186
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Thu, 12 Jan 2006 11:21:25 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

hello,

thanks for the tips.  i'm trying to write my own MouseMode class 
because unfortunately having to double click in some instances and 
single click in other instances is too confusing for the user.  the 
process has to be quick, efficient, and not confusing.  

i need the right click navigation mode to work all of the time on all 
layers.  however, the left click gestures mode is only on those layers 
that i choose to display tooltips and such.  do you have any 
suggestions on how i should write my own mouse mode?  right now i'm 
trying to make a class that implements MouseListener that detects 
whether the left or right button was clicked.  the listener is added to 
the mapbean.  once the detection is made, the method redirects the 
event to the appropriate MapMouseMode method.  This isn't working for 
me.

thanks in advance,
maria

> Hi Maria,
> 
> If you wish to just switch between mouse modes you have to:
>    - extends GesturesMouseMode, detect right-click and call method 
> MouseDelegator.setActiveMouseModeWithID(NavigationMouseMode.ID)
>    - do similar thing with NavMouseMode: detect left-click and call 
> MouseDelegator.
> 
> It should work like this: first click changes mouse mode, subsequent 
> clicks are interpreted by new mouse mode.
> 
> If you wish to have both Gestures and Navigation functionality in one 
> mouse mode (no switching), than you have to write your own MouseMode 
> class (possibly extending one of standard mouse modes) and implement 
> your logic. The problem is that standard layers respond to mouse 
modes 
> of specific IDs. You cannot assign two different IDs to one mouse 
mode.
> So you have to change Layer.getMouseModeServiceList method in each 
layer 
> you are going to use with your new mouse mode.
> 
> Hope this helps a little,
> Regards,
> Piotr Kaminski
> 
> Maria Harmening napisaÅ‚(a):
> > hello, all,
> > 
> > can anyone tell me if it's possible to set the MapMouseMode 
> > to "Gestures" if the user left-clicks and "Navigation" if the user 
> > right-clicks"?
> > 
> > thanks,
> > maria
> > 
> > --
> > [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"]
> 
> --
> [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"]
> 
> 

-- 
NeoMail - http://neomail.sourceforge.net

--
[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"]


From mail Thu Jan 12 11:32:59 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0CGWx209002
	for openmap-users-archive; Thu, 12 Jan 2006 11:32:59 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0CGWx208999
	for <openmap-users@openmap.bbn.com>; Thu, 12 Jan 2006 11:32:59 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0CGW6k22013
	for openmap-users-outgoing; Thu, 12 Jan 2006 11:32:06 -0500 (EST)
Date: Thu, 12 Jan 2006 11:26:48 -0500
Message-Id: <200601121626.k0CGQmZ29417@greenfieldeng.com>
From: "Maria Harmening" <maria.harmening@greenfieldeng.com>
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] mouse modes
X-Mailer: NeoMail 1.25
X-IPAddress: 192.58.199.185
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Thu, 12 Jan 2006 11:31:57 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

hello,

thanks for the tips.  i'm trying to write my own MouseMode class 
because unfortunately having to double click in some instances and 
single click in other instances is too confusing for the user.  the 
process has to be quick, efficient, and not confusing.  

i need the right click navigation mode to work all of the time on all 
layers.  however, the left click gestures mode is only on those layers 
that i choose to display tooltips and such.  do you have any 
suggestions on how i should write my own mouse mode?  right now i'm 
trying to make a class that implements MouseListener that detects 
whether the left or right button was clicked.  the listener is added to 
the mapbean.  once the detection is made, the method redirects the 
event to the appropriate MapMouseMode method.  This isn't working for 
me.

thanks in advance,
maria

> Hi Maria,
> 
> If you wish to just switch between mouse modes you have to:
>    - extends GesturesMouseMode, detect right-click and call method 
> MouseDelegator.setActiveMouseModeWithID(NavigationMouseMode.ID)
>    - do similar thing with NavMouseMode: detect left-click and call 
> MouseDelegator.
> 
> It should work like this: first click changes mouse mode, subsequent 
> clicks are interpreted by new mouse mode.
> 
> If you wish to have both Gestures and Navigation functionality in one 
> mouse mode (no switching), than you have to write your own MouseMode 
> class (possibly extending one of standard mouse modes) and implement 
> your logic. The problem is that standard layers respond to mouse 
modes 
> of specific IDs. You cannot assign two different IDs to one mouse 
mode.
> So you have to change Layer.getMouseModeServiceList method in each 
layer 
> you are going to use with your new mouse mode.
> 
> Hope this helps a little,
> Regards,
> Piotr Kaminski
> 
> Maria Harmening napisaÅ‚(a):
> > hello, all,
> > 
> > can anyone tell me if it's possible to set the MapMouseMode 
> > to "Gestures" if the user left-clicks and "Navigation" if the user 
> > right-clicks"?
> > 
> > thanks,
> > maria
> > 
> > --
> > [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"]
> 
> --
> [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"]
> 
> 

-- 
NeoMail - http://neomail.sourceforge.net

--
[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"]


From mail Thu Jan 12 11:46:05 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0CGk5t09143
	for openmap-users-archive; Thu, 12 Jan 2006 11:46:05 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0CGk5209140
	for <openmap-users@openmap.bbn.com>; Thu, 12 Jan 2006 11:46:05 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0CGinl22374
	for openmap-users-outgoing; Thu, 12 Jan 2006 11:44:50 -0500 (EST)
Date: Thu, 12 Jan 2006 11:39:26 -0500
Message-Id: <200601121639.k0CGdQO07098@greenfieldeng.com>
From: "Maria Harmening" <maria.harmening@greenfieldeng.com>
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] mouse modes
X-Mailer: NeoMail 1.25
X-IPAddress: 192.58.199.187
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Thu, 12 Jan 2006 11:44:38 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

hello,

thanks for the tips.  i'm trying to write my own MouseMode class 
because unfortunately having to double click in some instances and 
single click in other instances is too confusing for the user.  the 
process has to be quick, efficient, and not confusing.  

i need the right click navigation mode to work all of the time on all 
layers.  however, the left click gestures mode is only on those layers 
that i choose to display tooltips and such.  do you have any 
suggestions on how i should write my own mouse mode?  right now i'm 
trying to make a class that implements MouseListener that detects 
whether the left or right button was clicked.  the listener is added to 
the mapbean.  once the detection is made, the method redirects the 
event to the appropriate MapMouseMode method.  This isn't working for 
me.

thanks in advance,
maria

> Hi Maria,
> 
> If you wish to just switch between mouse modes you have to:
>    - extends GesturesMouseMode, detect right-click and call method 
> MouseDelegator.setActiveMouseModeWithID(NavigationMouseMode.ID)
>    - do similar thing with NavMouseMode: detect left-click and call 
> MouseDelegator.
> 
> It should work like this: first click changes mouse mode, subsequent 
> clicks are interpreted by new mouse mode.
> 
> If you wish to have both Gestures and Navigation functionality in one 
> mouse mode (no switching), than you have to write your own MouseMode 
> class (possibly extending one of standard mouse modes) and implement 
> your logic. The problem is that standard layers respond to mouse 
modes 
> of specific IDs. You cannot assign two different IDs to one mouse 
mode.
> So you have to change Layer.getMouseModeServiceList method in each 
layer 
> you are going to use with your new mouse mode.
> 
> Hope this helps a little,
> Regards,
> Piotr Kaminski
> 
> Maria Harmening napisaÅ‚(a):
> > hello, all,
> > 
> > can anyone tell me if it's possible to set the MapMouseMode 
> > to "Gestures" if the user left-clicks and "Navigation" if the user 
> > right-clicks"?
> > 
> > thanks,
> > maria
> > 
> > --
> > [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"]
> 
> --
> [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"]
> 
> 

-- 
NeoMail - http://neomail.sourceforge.net

--
[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"]


From mail Thu Jan 12 12:29:10 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k0CHTAc09684
	for openmap-users-archive; Thu, 12 Jan 2006 12:29:10 -0500
Received: from stout.bbn.com (stout.bbn.com [128.89.72.17])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k0CHT9209681
	for <openmap-users@openmap.bbn.com>; Thu, 12 Jan 2006 12:29:09 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k0CHRMQ23233
	for openmap-users-outgoing; Thu, 12 Jan 2006 12:27:22 -0500 (EST)
From: "Chase Barrett" <chase.barrett@issinc.com>
To: <openmap-users@bbn.com>
Subject: [OpenMap Users] RE: Number Of Colors in RPF Layer
Date: Thu, 12 Jan 2006 10:24:57 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0022_01C61762.702032B0"
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
Thread-Index: AcYSO4Khf9IuE1L2TCWKgag9yy/myAFYXfiw
In-Reply-To: 
Message-Id: <E1Ex6CA-000614-2c@fuse6.mailanyone.net>
Old-X-Spam-Status: NO
Old-X-Scanned-By: MIMEDefang 2.52 on 192.1.120.132
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-2.0 (gollum.bbn.com [192.1.120.132]); Thu, 12 Jan 2006 12:27:14 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on 128.33.1.41
X-Virus-Status: Clean
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.

------=_NextPart_000_0022_01C61762.702032B0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Any thoughts?

 

  _____  

From: Chase Barrett [mailto:chase.barrett@issinc.com] 
Sent: Thursday, January 05, 2006 2:04 PM
To: 'openmap-users@bbn.com'
Subject: Number Of Colors in RPF Layer

 

Hello all,

 

I've been looking at some ONC and JNC charts with the numberColors property
set to various values.  It seems that no matter what value I choose, there's
no impact on the image appearance.  So if I select 16, 32, or 216, the chart
images appear identical.

 

I placed a breakpoint in RpfColortable.setNumColors(), and it seems that
this method is always passed a value of 216, even though the RpfLayer that
the color table belongs to has an RpfViewAttributes object with a value of
16 in its numberOfColors field.

 

Is this a bug?

 

Thanks,

Chase


------=_NextPart_000_0022_01C61762.702032B0
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tahoma;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal;
	font-family:Arial;
	color:windowtext;}
span.EmailStyle1
