[Chameleon] Creating my own Widget
Paul Spencer
pagameba at magma.ca
Fri Sep 10 14:53:37 EDT 2004
Sorry I didn't jump in sooner but it looks like you got there in the end.
Note that modifying MapDHTMLWidget.js is not necessary in the general
case. The query widget is a special case that had to be handled in a
way that I am not particularly happy about ... widgets should not
require changes in other widgets to make them work ... the difficulty in
this case was that I didn't want the page to be submitted when the user
clicks, but it is the MapDHTMLWidget that does the submitting :( This
is one of the things that I really want to change in the next version ...
Cheers,
Paul
Robin Robin wrote:
> Hi everyone,
>
> Just sending out the good news. My widget now works (well it's working
> as another query widget at the moment)! For future reference, here is
> what I did:
> (I am just creating a widget that is slightly modified from an existing
> one)
>
> 1) In the Widgets Folder, copy the entire folder for the widget you are
> planning to modify (mine was query)
> 2) Place a copy of the above folder in the Widgets folder and rename it
> to your new widget name
> 3) Open your new folder and rename all the files. For example, I was
> using the query widget to make a hotlink widget, so I changed
> Query.Widget.php to Hotlink.Widget.php. Do the same for all the files
> in your new folder
> 4) Open the YourName.Widget.php and do a search and replace. I did a
> search for Query and replaced with Hotlink. Save
> 5) You may need to do similar search and replace moves on the other
> files. I think this would depend on the widget you are creating. I
> didn't need to change any other files (not yet anyway:)
> 6) In the Widget folder, find the MapDHTMLWidget folder and inside
> that, open the MapDHTMLWidget.js file (you may want to make a copy of
> this before you start messing with it, just to be safe, just make sure
> the one you are changing is called MapDHTMLWidget.js so you don't have
> to change any references to it). Do a search for the original widget
> name and add similar lines of code under with your widget name
> inserted. For example, I found:
> gMapDHTMLForm.NAV_CMD.value == "QUERY" ||
>
> so under it I inserted:
> gMapDHTMLForm.NAV_CMD.value == "HOTLINK" ||
>
> Make sure that everything still makes sense after you do this. I forgot
> to put the || after the query line one time and another I had to remove
> the ending brackets from the query line and move them to the hotlink
> line. It's not hard, you just have to pay attention to what the code is
> trying to do and make sure it still does the same thing when you're done.
>
> Now you can add your new widget to your map. Hope this helps people out.
>
> Sorry to be so longwinded, I'm hoping this helps out someone in my
> situation later. Thanks for all the help.
>
> Robin
>
>
>> From: "Ken Sanderson" <ken at rockies.ca>
>> To: <chameleon at lists.maptools.org>
>> Subject: RE: [Chameleon] Creating my own Widget
>> Date: Fri, 10 Sep 2004 11:29:29 -0600
>>
>> When I created my Nav tools widget I needed to add some changes to the
>> MapDHTMLWidget.js file in the MapDHTMLWidget folder in the widgets
>> directory.
>>
>> Open that file and look in the functions:
>>
>> MapWchkMouseUp, MapWmapTool, and MapWgetMouse.
>>
>> There are parts in each of those that look something like this:
>>
>> if((window.gMapDHTMLForm != null) &&
>> (gMapDHTMLForm.NAV_CMD != null) &&
>> (gMapDHTMLForm.NAV_CMD.value == "PAN_MAP" ||
>> gMapDHTMLForm.NAV_CMD.value == "RULER" ||
>> gMapDHTMLForm.NAV_CMD.value == "QUERY" ||
>> gMapDHTMLForm.NAV_CMD.value == "GetPoint"))
>> return true;
>>
>> Its slightly different in each one, but you will be able to recognize
>> it. GetPoint is my widget, you can see how I added it there. Basically
>> since QUERY is in every one I suspect that a query type widget also
>> needs to be there, so put your own widget name in those lists.
>>
>> Ken
>> Miistakis
>>
>> -----Original Message-----
>> From: chameleon-bounces at lists.maptools.org
>> [mailto:chameleon-bounces at lists.maptools.org] On Behalf Of Robin Robin
>> Sent: September 10, 2004 7:51 AM
>> To: chameleon at lists.maptools.org
>> Subject: [Chameleon] Creating my own Widget
>>
>>
>> Hello all,
>>
>> I am trying to create my own widget and I am running into some problems.
>> I
>> am trying to create a hotlink widget which will work similar to identify
>> but
>> will open a webpage when the location on the map is clicked. I plan to
>> do
>> this by copying and modifying the query widget.
>>
>> I started by simply copying the query widget and renaming it. I wanted
>> to
>> check that it still worked once the name has been changed. It doesn't!
>> So
>> far, I changed the folder name to Hotlink, I have changed
>> QueryResults.phtml
>> to HotlinkResults.phtml and Query.widget.php to Hotlink.widget.php. I
>> have
>> also changed in Hotlink.widget.php the class and constructor names from
>> Query to Hotlink (as per instructions in an old thread I found in the
>> chameleon archives).
>>
>> When I click on my hotlink button the map redraws and nothing happens.
>> If I
>> click the same point with my identify/query button I get a popup window
>> with
>> the query results. Since I haven't changed any of the actual
>> functionality
>> yet, both buttons should produce the same results.
>>
>> Are there other places where I have to change/add to files so that my
>> new
>> widget will be recognized? In an older message someone mentioned
>> changing
>> the MapDHTMLWidget.widget.php but I couldn't tell where it should be
>> changed
>> (I did a text search for query).
>>
>> Any help would be appreciated.
>>
>> Thanks
>>
>> _________________________________________________________________
>> The new MSN 8: advanced junk mail protection and 2 months FREE*
>> http://join.msn.com/?page=features/junkmail
>>
>> _______________________________________________
>> Chameleon mailing list
>> Chameleon at lists.maptools.org
>> http://lists.maptools.org/mailman/listinfo/chameleon
>>
>>
>> _______________________________________________
>> Chameleon mailing list
>> Chameleon at lists.maptools.org
>> http://lists.maptools.org/mailman/listinfo/chameleon
>
>
> _________________________________________________________________
> Help STOP SPAM with the new MSN 8 and get 2 months FREE*
> http://join.msn.com/?page=features/junkmail
>
> _______________________________________________
> Chameleon mailing list
> Chameleon at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/chameleon
>
--
-----------------------------------------------------------------
|Paul Spencer pspencer at dmsolutions.ca |
|-----------------------------------------------------------------|
|Applications & Software Development |
|DM Solutions Group Inc http://www.dmsolutions.ca/|
-----------------------------------------------------------------
More information about the Chameleon
mailing list