[Chameleon] Custom Widget, problem showing Point Layer
Julien-Samuel Lacroix
jlacroix at mapgears.com
Wed Jan 3 15:53:03 EST 2007
Hi,
I tested your widget and got it working by adding:
$this->SetNavCommand('UUW');
in the UUW function.:
function UUW()
{
// set the language file
$this->mszLanguageResource = dirname(__FILE__).'/UUW.dbf';
// invoke constructor of parent
parent::NavTool();
$this->SetNavCommand('UUW');
$this->maAttributes['COORDS'] =
new StringAttribute( 'COORDS', true, array( 'aa' ) );
// set the description for this widget
$this->szWidgetDescription = <<<EOT
This is the UUW.
EOT;
// set the maturity level
$this->mnMaturityLevel = MATURITY_ALPHA;
// end constructor
}
Julien
Ines wrote:
> Hello, I'm trying to show a point layer with my custom widget but I have
> problems to do it. My widget don´t do nothing.
> I created a point layer in the file.map with the status "On" or "Default"
> and it is working very well (It apeears in the legend and show me the point
> on the map). But I need to make this point dynamic with the custom widget,
> because the latitude and longitude will be changing (dynamic).
>
> When I click on the button of my widget, the web page (my application) don't
> do nothing. I don´t know how to solve this problem. Perhaps I´m doing
> something wrong in the widget but I don´t know what. I'm going crazy with
> the custom widget and I really need to solve this problem. I really need
> your help.
>
> Well, I need to make the point layer appears in the map when I click the
> buttom of the widget. And I need to have the point layer status "Off" when I
> run the application for first time, and then, set to "On" just when I click
> the button of the widget.
>
> I´m show you:
> 1) The point Layer in the file.map
> 2) The code in the widget
> 3) The cwc2 tag in the template.html
>
> 1) The point Layer in the file.map
>
> LAYER
> NAME "pointlatlon"
> PROJECTION
> "init=epsg:4326"
> END
> TYPE POINT
> STATUS OFF
> FEATURE
> POINTS
> -85.933333 13
> END
> TEXT "My Place"
> END
> CLASS
> COLOR 255 0 0
> OUTLINECOLOR 255 255 255
> SYMBOL "circle"
> SIZE 10
>
> LABEL
> POSITION AUTO
> COLOR 98 223 45
> OUTLINECOLOR 255 255 255
> END
> END
> END
> ----------------------------------------------------------------------------
> ------------
>
> 2) The code in the widget
>
>
> a) ------------------"UUW" Widget
> Class--------------------------------------------------
>
> // inherit from the NavTool
> include_once(dirname(__FILE__)."/../NavTool.php");
> include( 'utils.inc.php' );
>
> /**
>
> ____________________________________________________________________________
> _
> |
> | "UUW" Widget Class
>
> |___________________________________________________________________________
> __
>
> **/
> class UUW extends NavTool
> {
> // define member vars
> // i.e. var $mszMyVariable;
> var $x;
> var $y;
> var $mszCoords;
> var $poLayer;
> var $pt;
> var $ln;
> var $shp;
> var $pt;
> var $ln;
> var $shp;
>
>
> // var $mszReport;
>
> ///////// ADD MEMBER VARS HERE /////////
>
> /**
>
> _________________________________________________________________________
> |
> | Constructor: "UUW" Widget Class
>
> |_________________________________________________________________________
>
> **/
> function UUW()
> {
> // set the language file
> $this->mszLanguageResource = dirname(__FILE__).'/UUW.dbf';
>
> // invoke constructor of parent
> parent::NavTool();
>
>
>
> ///////// ADD ATTRIBUTES HERE /////////
>
>
> $this->maAttributes['COORDS'] =
> new StringAttribute( 'COORDS', true, array( 'aa' ) );
>
> // set the description for this widget
> $this->szWidgetDescription = <<<EOT
> This is the UUW.
> EOT;
> // set the maturity level
> $this->mnMaturityLevel = MATURITY_ALPHA;
>
> // end constructor
> }
>
> b) ------------------function
> InitDefaults()--------------------------------------------
>
> function InitDefaults()
> {
> // init defaults for parent
> parent::InitDefaults();
>
> ///////// ADD CODE HERE IF NECESSARY /////////
>
>
> $this->mszCoords = isset( $this->maParams['COORDS'] )?
>
> $this->maParams['COORDS'] : '';
>
>
>
> // end InitDefaults function.
> }
>
>
> c) ------------------function
> ParseURL()---------------------------------------------------
>
> function ParseURL()
> {
> // execute parent function
> parent::ParseURL();
>
> ///////// ADD CODE HERE IF NECESSARY /////////
> // work some magic
> if ( $this->isVarSet( "NAV_CMD" ) &&
> $this->getVar( "NAV_CMD" ) == 'UUW' )
> {
>
> $this->x = -85;
> $this->y = 13;
>
> if ( $this->mszCoords == 'aa')
> {
> $poLayer = $this->moMapObject->oMap->getLayerByName('pointlatlon');
> $pt = ms_newPointObj();
> $ln = ms_newLineObj();
> $shp = ms_newShapeObj(MS_SHAPE_POINT);
> $pt->setXY($this->x,$this->y);
> $ln->add($pt);
> $shp->add($ln);
> $poLayer->addFeature($shp);
>
> }
>
> }
>
> // return success
> return true;
> }
>
>
> d) ------------------function
> DrawPublish()-----------------------------------------------
>
>
> function DrawPublish()
> {
> // init vars
> $szReturn = "Search by scientific name <input type='text'
> name='textfield'>";
>
> // execute parent
> $szReturn .= parent::DrawPublish();
>
> ///////// ADD CODE HERE IF NECESSARY /////////
>
> // return
> return $szReturn;
>
> // end DrawPublish() function
> }
> ----------------------------------------------------------------------------
> ------------------
>
>
> 3) The cwc2 tag in the template.html
>
> <cwc2
> type="UUW"
> coords="aa"
> imagetip="Info"
> image="icons/icon_query.png"
> styleresource="NavButtons"
> imagewidth="25"
> toolset="nav">
> <image state="normal"/>
> <image state="hover"/>
> <image state="selected"/>
> </cwc2>
>
>
> Rally thank you very much,
> Ines
>
> _______________________________________________
> Chameleon mailing list
> Chameleon at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/chameleon
--
Julien-Samuel Lacroix
Mapgears
http://www.mapgears.com/
More information about the Chameleon
mailing list