CKEDITOR.dialog.add( 'googlemapsLine', function( editor ) { 'use strict'; var fldAreaProperties, mode; function pickAColor( button, field ) { var thisDialog = button.getDialog(); editor.openNestedDialog( 'colordialog', // before showing function( dialog ) { var color = thisDialog.getValueOf( 'Info', field), control = dialog.getContentElement( 'picker', 'selectedColor'); // set initial value control.setValue( color ); control.setInitValue(); }, // on OK function( dialog ) { var control = dialog.getContentElement( 'picker', 'selectedColor'); thisDialog.getContentElement( 'Info', field ).setValue( control.getValue() ); // Reset to empty default control.setValue( '' ); control.setInitValue(); }); } return { title : editor.lang.googlemaps.properties, minWidth : 230, minHeight : 140, resizable : false, buttons : [ { type : 'button', id : 'deleteOverlay', label : editor.lang.googlemaps.deleteMarker, onClick : function( evt ) { var dialog = evt.sender.getDialog(); dialog.onRemoveOverlay(); dialog.hide(); } }, CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ], onLoad: function() { fldAreaProperties = this.getContentElement( 'Info', 'fldAreaProperties').getElement(); this.setValues = function( data ) { this.definition.setValues.call(this, data); }; this.getValues = function() { return this.definition.getValues.call(this); }; }, setValues : function(data) { var control = this.getContentElement( 'Info', 'cmbStrokeWeight'); control.setValue( data.strokeWeight ); control.setInitValue(); control = this.getContentElement( 'Info', 'cmbStrokeOpacity'); control.setValue( data.strokeOpacity ); control.setInitValue(); control = this.getContentElement( 'Info', 'txtStrokeColor'); control.setValue( data.strokeColor ); control.setInitValue(); if (data.fillOpacity) { mode = 'polygon'; fldAreaProperties.show(); control = this.getContentElement( 'Info', 'cmbFillOpacity'); control.setValue( data.fillOpacity ); control.setInitValue(); control = this.getContentElement( 'Info', 'txtFillColor'); control.setValue( data.fillColor ); control.setInitValue(); this.resize(230, 240); } else { mode = 'polyline'; fldAreaProperties.hide(); this.resize(230, 140); } }, getValues : function() { var data = { strokeWeight: parseInt(this.getValueOf( 'Info', 'cmbStrokeWeight'), 10), strokeOpacity: parseFloat(this.getValueOf( 'Info', 'cmbStrokeOpacity')), strokeColor: this.getValueOf( 'Info', 'txtStrokeColor') }; if (mode == 'polygon') { data.fillOpacity = parseFloat(this.getValueOf( 'Info', 'cmbFillOpacity')); data.fillColor = this.getValueOf( 'Info', 'txtFillColor'); } return data; }, contents : [ { id : 'Info', elements : [ { type: 'fieldset', id: 'fldLineProperties', label: editor.lang.googlemaps.lineProperties, children: [ { id : 'cmbStrokeWeight', label: editor.lang.googlemaps.strokeWeight + ' ', labelLayout : 'horizontal', widths: [ '55px', '65px' ], style : 'width:130px; margin-bottom:1em;', inputStyle : 'width:45px; padding-left:0; padding-right:0;', type : 'select', items : [ [ '1', '1' ], [ '2', '2' ], [ '3', '3' ], [ '4', '4' ], [ '5', '5' ], [ '6', '6' ], [ '7', '7' ], [ '8', '8' ], [ '9', '9' ], [ '10', '10' ] ] }, { id : 'cmbStrokeOpacity', label: editor.lang.googlemaps.strokeOpacity + ' ', labelLayout : 'horizontal', widths: [ '55px', '65px' ], style : 'width:130px; margin-bottom:1em;', inputStyle : 'width:45px; padding-left:0; padding-right:0;', type : 'select', items : [ [ '0.1', '0.1' ], [ '0.2', '0.2' ], [ '0.3', '0.3' ], [ '0.4', '0.4' ], [ '0.5', '0.5' ], [ '0.6', '0.6' ], [ '0.7', '0.7' ], [ '0.8', '0.8' ], [ '0.9', '0.9' ], [ '1', '1' ] ] }, { type:'hbox', widths: [ '130px', '80px' ], children: [ { id : 'txtStrokeColor', type : 'text', label: editor.lang.googlemaps.strokeColor, labelLayout : 'horizontal', widths: [ '55px', '65px' ], width: '65px' }, { id : 'btnColor', type : 'button', label : editor.lang.googlemaps.chooseColor, onClick : function() {pickAColor( this, 'txtStrokeColor'); } } ] } ] }, { type: 'fieldset', id: 'fldAreaProperties', label: editor.lang.googlemaps.areaProperties, children: [ { id : 'cmbFillOpacity', label: editor.lang.googlemaps.fillOpacity + ' ', labelLayout : 'horizontal', widths: [ '55px', '65px' ], style : 'width:130px; margin-bottom:1em;', inputStyle : 'width:45px; padding-left:0; padding-right:0;', type : 'select', items : [ [ '0.1', '0.1' ], [ '0.2', '0.2' ], [ '0.3', '0.3' ], [ '0.4', '0.4' ], [ '0.5', '0.5' ], [ '0.6', '0.6' ], [ '0.7', '0.7' ], [ '0.8', '0.8' ], [ '0.9', '0.9' ], [ '1', '1' ] ] }, { type:'hbox', widths: [ '130px', '80px' ], children: [ { id : 'txtFillColor', type : 'text', label: editor.lang.googlemaps.fillColor, labelLayout : 'horizontal', widths: [ '55px', '65px' ], style : 'width:130px; ', width: '65px' }, { id : 'btnFillColor', type : 'button', label : editor.lang.googlemaps.chooseColor, onClick : function() {pickAColor( this, 'txtFillColor'); } } ] } ] } ] } ] }; } );