POST
|
FYI, the patch is now available for download: Portal for ArcGIS 10.6.1 Enterprise Sites Patch Hope this helps,
... View more
11-12-2018
11:43 AM
|
0
|
0
|
592
|
POST
|
The problem is that iOS does not process the contextmenu mouse event, as both Android and Windows do. Unfortunately unless you are using the Bower build, there is no current fix for the problem, as it requires a significant hack to the menu.js in dojo's digit directory. The dojo menu.js code that won't work in iOS: on(cn, delegatedEvent(this.leftClickToOpen ? "click" : "contextmenu"), function(evt){ The fix requires a separate section of code for ios. First bring in the dojox/gesture/tap module to menu.js. Then as follows: //create a var for tap.hold with a long enough hold time to prevent from being activated on swipe gesture var myTap = new dojox.gesture.tap.Tap({holdThreshold: 1000}); //separate code for ios only: if(has("ios")){ var hammertime = Hammer(dom.byId("mapViewDiv_root")); hammertime.get('press').set({ time: 1000, pointers: 1, threshold: 9 }); var self = this; hammertime.on("press", function (e) { var x, y; x = e.center.x; y = e.center.y; self.myX = x; self.myY = y; }); var doConnects = lang.hitch(this, function(cn){ var selector = this.selector, delegatedEvent = selector ? function(eventType){ //the folowing is necessary to keep iOS from freezing any other click events on the map, due to using dojox/gesture if(cn.className == "esriMapContainer"){ cn.dojoClick = true;} //end add return on.selector(selector, eventType); } : function(eventType){ return eventType; } //self= this not needed here since it is declared above // self = this; return [ on(cn, delegatedEvent(this.leftClickToOpen ? "click" : myTap.hold), function(evt){ evt.stopPropagation(); evt.preventDefault(); //need to this to clear the element for other click events.Not sure why at this point: query(dom.byId("mapViewDiv_root")).on(myTap.hold, function(e){e.preventDefault()}); //need to allow other node menu events to work as usual, thus separate code for the context menu if(evt.target.nodeName == "svg"){ self._scheduleOpen(this, iframe, {x: self.myX, y: self.myY}, evt.target); }else{ self._scheduleOpen(this, iframe, {x: evt.pageX, y: evt.pageY}, evt.target); } //end altered/added code: the rest can be taken as written in menu.js. I use an 'else' statement to move from 'has(ios)' to the original code for all other devices. Hammer.js is necessary as documented elsewhere due to dojox/gesture not returning screen coordinates. I hope this helps someone. Took me a few days to figure everything out. Unfortunately, I'm getting used to this.
... View more
06-14-2017
11:15 AM
|
0
|
0
|
722
|
POST
|
Dijit/form/Select dropdown will not scroll on ios. I know that Dojo recommends using dojox mobile, but tablets are 'tweeners' in today's world, and this should not be a problem or issue. I would hope that Esri, as a paying customer to Dojo, could perhaps put some weight on this to get Dojo to fix the problem, or suggest a reasonable code adjustment to work around the issue. I have looked at select.js and _list.js (I am using the Bower build), but can't come up with any reason why scroll fails on ios. I have set the maxHeight to -1 as they suggest in the documentation, but the dropdown still does not scroll on ios. I even changed through css the .dijitPopup to overflow:scroll (the element.style defaults to overflow:visible until the user clicks to open the drop-down, wherein it changes to overflow-x: visible, overflow-y:scroll). I know I could use native select, but that destroys the validation that I would like to use. Has anyone else encountered and solved this? Anyone from Esri have a suggestion, or solution? Thanks, Jim Faron
... View more
01-10-2017
12:46 PM
|
0
|
0
|
674
|
POST
|
Rene, I posted my comment before reading your response. The build report did help me as you indicated. Custom code is bit tricky to make work: perhaps a simple sample in the documentation might help. What I did specifically was to add a map to my app/widgets directory, and referred to it in the packages array: packages: [
// 'app' is a sample path for your application
// set this accordingly
'app',
'widget',
'dijit',
'dojo',
'dojox',
'dstore',
'dgrid',
'xstyle',
'put-selector',
'esri', {
name: 'moment',
location: 'moment',
main: 'moment',
trees: [
// don't bother with .hidden, tests, min, src, and templates
[".", ".", /(\/\.)|(~$)|(test|txt|src|min|templates)/]
],
resourceTags: {
amd: function(filename, mid){
return /\.js$/.test(filename);
}
}
}
],
map: {
'*': {
widget: "app/widget"
}
}, And in the include: include: [
// include the app, set accordingly for your application
'app/main',
'widget/SaraWidget',
'widget/SchoolsWidget',
'widget/utils/PopupExtended',
// dependencies of esri/map that will be requested if not included There were other syntax and argument errors that I fixed as well. Again, it was confusing in that the errors did not cause problems in dev environment, but all is well, at least for now!
... View more
06-08-2016
08:58 AM
|
0
|
0
|
457
|
POST
|
The built.html has the dojoConfig omitted because it is embedded in the built file for you. jsapi-resources/build.profile.js at master · Esri/jsapi-resources · GitHub The built.html is copied to the build directory as index.html so the built app will run correctly. This is only for demonstration purposes. In a production environment, you should use some tooling to modify the HTML file. You can look at this sample here using Grunt that will modify the HTML file during the build process. esrijs-generator-demo/index.html at master · odoe/esrijs-generator-demo · GitHub This is using a tool called grunt-processhtml. I just didn't think it was worth piling on too much tooling for the demo app in the jsapi-resources repo
... View more
05-24-2016
09:53 AM
|
1
|
0
|
302
|
POST
|
Hi Robert! Oh my gosh! I told you it was probably something stupid! I removed that and it works!! Thank you, so, so much! I really appreciate your help. We love this tool and use it a lot in all of our maps! Thanks, again, and have a great weekend! Julie
... View more
04-24-2015
11:44 AM
|
0
|
0
|
906
|
POST
|
Yes, that worked! Thanks so much for the reference. OpenScales is a great resource. Jim Faron Austin Independent School District
... View more
09-03-2013
06:42 AM
|
0
|
0
|
225
|
POST
|
Robert, Yes there must be something else at play, and it may be that this can only work within the mxml component. I am trying to do this in an action script class, and it never sends to the geometry service. So I guess I may create a new post to see if it is possible to use a geometry service in an action script class, i.e. not in mxml. Thanks again for the help. Jim Faron Austin Independent School District
... View more
08-30-2013
12:08 PM
|
0
|
0
|
107
|
POST
|
Jim, I really thought that I had that handled by this function: protected function layerUpdateStartHandler(event:LayerEvent):void
{
//once a layer starts to update,show the progressbar
pb.visible = true;
var lyr:Layer = event.layer;
//If a ArcGISTiledMapServiceLayer has Display Levels defined and the map has custom
//LODs defined than it takes this extra work to determine if the layer is actually
//drawing at this LOD and if not then just return and do not add this layer to the
//layerColl
var Lod:LOD = map.lods[map.level];
if (lyr is ArcGISTiledMapServiceLayer){
var tLyr:ArcGISTiledMapServiceLayer = lyr as ArcGISTiledMapServiceLayer;
if(tLyr.displayLevels){
var pLodFound:Boolean;
for each(var tLod:LOD in layerTileInfoCache[tLyr]){
if (tLod == Lod) pLodFound = true;
}
if(!pLodFound) return;
}
}
if(!lyr.isInScaleRange) return; //Which means that the layer never gets added to the collection
//add the layer to layer collection
if (!layerColl.contains(lyr)){
layerColl.addItem(lyr);
}
} I will have look into it more when I get a chance.
... View more
06-02-2012
02:59 PM
|
0
|
0
|
480
|
POST
|
Were you able to resolve this as I am having the same issues...
... View more
10-19-2012
08:15 AM
|
0
|
0
|
460
|
POST
|
Not sure if this thread is the appropriate spot for this question, but I figured I would try here so I might get Robert's assistance. I have Widget A, which when its processing is complete opens Widget B. Using the recommendations from Robert's great Widget Communication document I use the following code to accomplish this. From Widget A var id_B:Number = ViewerContainer.getInstance().widgetManager.getWidgetId("B");
var baseWidget_B:IBaseWidget = ViewerContainer.getInstance().widgetManager.getWidget(id_B, true) as IBaseWidget; This works correctly and Widget B opens. However, with a new requirement, when Widget A has completed its processing I also need to open Widget C. I use the following code var id_B:Number = ViewerContainer.getInstance().widgetManager.getWidgetId("B");
var baseWidget_B:IBaseWidget = ViewerContainer.getInstance().widgetManager.getWidget(id_B, true) as IBaseWidget;
var id_C:Number = ViewerContainer.getInstance().widgetManager.getWidgetId("C");
var baseWidget_C:IBaseWidget = ViewerContainer.getInstance().widgetManager.getWidget(id_C, true) as IBaseWidget; Now, Widget C opens correctly, but Widget B no longer does. It seems that I can only dispatch a single WIDGET_RUN event from Widget A. If I comment out the code for opening Widget C, Widget B opens correctly. I'm fairly new at developing with the Viewer so any insight on this behavior would be greatly appreciated.
... View more
01-24-2012
07:03 AM
|
0
|
0
|
254
|
POST
|
Thanks for sharing your solution. I noticed that the link would revert back when opening the Data Grid, so be sure to open the SearchWidgetFloat(or Fixed)DG.mxml and edit the same lines of code.
... View more
10-10-2011
09:38 AM
|
0
|
0
|
295
|
POST
|
I am basically following steps from this forum topic:http://forums.arcgis.com/threads/20965-LiveMapsWidget-doesn-t-follow-changes I changed TocItem.as (in both Robert's TOC Widget directory, and in src\components\tocClasses) as follows: public class TocItem extends EventDispatcher
{
public function TocItem(parentItem:TocItem = null)
{
_parent = parentItem;
ViewerContainer.addEventListener(AppEvent.PROGRAMATIC_LAYER_VISIBILITY_CHANGED, updateCheckBox);
}
private function updateCheckBox(event:AppEvent):void
{
if(this is TocLayerInfoItem)
{
var tli:TocLayerInfoItem = this as TocLayerInfoItem;
if(tli.layerInfo.name == event.data){
//setVisibleDirect(true);
setVisible(_visible ? false : true, true)
}
}
} Entered Public static const in AppEvent.as: public static const PROGRAMATIC_LAYER_VISIBILITY_CHANGED:String = "programicLayerVisibilityChanged"; Finally, called it in a widget as follows: private function test1(evt:Event):void
{
ViewerContainer.dispatchEvent(new AppEvent(AppEvent.PROGRAMATIC_LAYER_VISIBILITY_CHANGED, "Students"));
} The end result is that the TOC layer is not updated from visible=false to visible=true. I must be missing a step, or perhaps something changed in a version update? Thanks, Jim Faron Austin Independent School District
... View more
05-03-2011
09:22 AM
|
0
|
0
|
1660
|
POST
|
Robert, Thanks for all your help. I really appreciate it since I'm just getting into setting up applications with the flex viewer. You have created some great tools for us to use. Nate
... View more
05-10-2011
06:42 AM
|
0
|
0
|
173
|
Title | Kudos | Posted |
---|---|---|
1 | 03-09-2023 07:05 AM | |
1 | 06-25-2021 08:54 AM | |
1 | 06-25-2021 08:35 AM | |
1 | 06-27-2022 02:18 PM | |
7 | 06-24-2021 03:26 PM |
Online Status |
Offline
|
Date Last Visited |
04-13-2023
10:27 AM
|