Search Results

Search found 8041 results on 322 pages for 'generic callback'.

Page 75/322 | < Previous Page | 71 72 73 74 75 76 77 78 79 80 81 82  | Next Page >

  • How would I strip an '&' symbol out of an ESRI dropdown before any of it's default control logic is

    - by Carter
    I have an ESRI dropdown control inside of an ESRI toolbar. One of the items in the dropdown needs to have an '&' symbol in it. As it turns out ESRI stuff builds it's callback strings as & delimited strings, so when an item is selected the parent toolbar immediately builds and handles the callback string. At one point it splits strings based on the '&' crashing the app. In effect, having an ampersand in an esri dropdown causes nasty stuff to happen when you select the item. What I need to do is find out how I can hop in before the callback stuff starts happening and strip that & out. I was thinking that perhaps I'd have to create a custom esri toolbar control, but I'm not sure and that'd be pretty undesirable. Any ideas?

    Read the article

  • Animate function jQuery

    - by Antonio Pitasi
    I'm new here and I have a problem the jQuery's function "animate" function myFunction(newpage) { $('#loader').animate({opacity: 0.0}, 400, 'linear', function(){ // callback of fadeOut() $(this).load(newpage + ".php #toload", function(){ // callback of load() $('#loader').animate({opacity: 100.0}, 400, 'linear', function(){ //callback of fadeIn() // (not relevant for my problem, I think) $.getScript("js/test.js"); }); }); }); } My problem is: the first "animate" works like a charm but the second load the new content correctly, without the animation (a simple fadeIn). Anyone can help me? Thanks in advice! P.S. Sorry for my english

    Read the article

  • Gridview with row being edited causing error when form submitted

    - by Chris Phelps
    Using ASP.NET VB, I have a form with some text boxes and a Gridview. If a user clicks the Edit button on a row in the gridview, and then tries to submit the form with a row still in edit mode on the Gridview, this error is generated - "Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEventValidation="true" % in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. " Any idea how to prevent this error??

    Read the article

  • Twitter Search API Question

    - by supermogx
    I'm using the twitter search API to get twitter posts based on some keywords, using AND and OR keyword. It works OK, but I seem to get problems using hashtags... For example : Not returning any results : http://search.twitter.com/search.json?q="%23ipad+AND+%23ipod"+OR+"%23joke+AND+%23funny"&rpp=100&callback=? Returning results : http://search.twitter.com/search.json?q="ipad+AND+ipod"+OR+"joke+AND+funny"&rpp=100&callback=? But there's results with #ipod AND #ipad because when I search only for #ipod, I can see a lot of posts with both hashtags. Example : http://search.twitter.com/search.json?q=%23ipad&rpp=100&callback=? P.S. %23 = # Any idea?

    Read the article

  • Full Calender in JQUERY using webservices in Asp.Net

    - by inkmca
    hi, this is My code it works fine for getting data and parsing but i am unable to get events displayed ..... please let me know possible reason very urgent, i feel callback(evnt) not working here............. events: function(callback) { $.ajax({ type: "POST", url: "WebService.asmx/hello", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { var evnt = []; $(data.d).find('event').each(function() { evnt.push({ // title: $(this).attr('title'), // start: $(this).attr('start'), // end: $(this).attr('end') title: 'Events1', start: '2010-04-01', end: '2010-04-10' }); }); alert('called end'); callback(evnt); }, error: OnError }); }

    Read the article

  • Drupal: How to render a form and table on same page

    - by Aaron
    Can someone help me render a form and table on the same page? I'm sure it's easy, but can't think of how to do it. Here's hook_menu: function ncbi_subsites_menu() { $items = array(); $items['admin/content/ncbi_subsites'] = array( 'title' => 'NCBI Subsites Module', 'description' => 'Informs Drupal about NCBI subsites as defined by the Content Inventory database', 'page callback' => 'ncbi_subsites_show_main_page', 'access arguments' => array( 'administer site configuration' ), 'type' => MENU_NORMAL_ITEM, ); return $items; } Here's the callback: function ncbi_subsites_show_main_page() { $subsites = ncbi_subsites_get_subsites_from_inventory(); // fnc returns associative array from inventory, defined in include return ncbi_subsites_make_table( $subsites ); } In the callback I call some helper functions that return a themed, paged table. What I want is a small form above the table. How would I that?

    Read the article

  • Observing 'click' event on <a> tag generated by scriptaculous Builder

    - by bratsche
    I'm using scriptaculous Builder to generate some DOM elements dynamically, and one of them is a link tag. I wasn't sure how to generate this with the click callback inline along with the rest of the Builder code, so I'm generating the link tag ahead of time and then inserting it with the rest of the Builder phase. The problem is that the callback for the link is never actually executed when I click the link, and the URL bar changes to http://localhost/foo/bar/# instead. The callback method is a part of my class, so I'm binding it as an event listener ahead of time. var Foo = Class.create ({ initialize: function () { this.closeBinding = this.doClose.bindAsEventListener (this); }, generate: function () { /* Create the link and bind the click listener */ var close_link = Builder.node ('a', { href: '#' }, 'Close'); Event.observe (close_link, 'click', this.closeBinding); /* Generate the new DOM nodes */ return Builder.node ('div', [ Builder.node ('h2', 'This is a test'), close_link ]); }, doClose: function (evt) { /* This code is never called when I click the link. */ } });

    Read the article

  • how to access a firefox extension variable from the current document/window

    - by bosky101
    my firefox extension has an object myExt . myExt = { request: function(){ //makes request to server}, callback: function(json) { //do something with this } }; From a dynamically added script element, I make a call to a server that returns json, i want the json to be sent to myExt.callback that exists within my extension's js code. //from my extension, i add a script element myExt.request(); //from server i get the following response myExt.callback ( {"some":"json"}) ; //but the window doesnt find a reference to myExt how do i make a reference to myExt variable from the webpage ?

    Read the article

  • how do you get the response back into the instance of the object?

    - by randomdev
    If you've written a class in JavaScript that calls a remote service's API, and that remote API offers a callback, how do you get the response back into the instance of the object that made the request? I'll try to give you a very basic example FOO for making cross domain calls to BAR service which offers a callback. Please ignore the usual security concerns, (I own both servers). function FOO() { this.response = null; this.execute = function(url) { var script = document.createElement('script'); script.src = url; document.getElementsByTagName('head')[0].appendChild(script); } this.catch = function(response) { this.response = response; } } var sample = new FOO(); sample.execute('http://barservices.com/sample/?callback={ plshelphere: this.catch}'); I have a way to make this work, but I'm curious if there is an "accepted approach" here. Anyone have thoughts for me?

    Read the article

  • list and explanations of ways to boost this router's signal strength? [closed]

    - by barlop
    Possible Duplicates: Improve Wireless Signal How to get wireless coverage over my whole house? What's the best way to increase the range of my 802.11g router? The back of my house doesn't have WiFi Signal I'm interested in ways that are both specific to certain routers, and generic. When I say generic, I don't necessarily mean a one way that works for many.. but it can also be a generic answer, so mentioning solutions for different situations. So not just the one router I mention. Explanations are important, as well as all the ways. One i'm particularly interested in boosting the strength of is this wireless router/modem Netgear VMDG280 maybe anywhere in a big house with three floors, maybe from the garden.

    Read the article

  • Passing URIs as URL arguments in Drupal 6

    - by wynz
    I'm running into problems trying to pass absolute URIs as parameters with clean URLs enabled. I've got hook_menu() set up like this: function mymodule_menu() { return array( 'page/%' = array( 'title' = 'DBpedia Display Test', 'page callback' = 'mymodule_dbpedia_display', 'page arguments' = array(1), ), ); } and in the page callback: function mymodule_dbpedia_display($uri) { // Make an HTTP request for this URI // and then render some things return $output; } What I'm hoping to do is somehow pass full URIs (e.g. "http://dbpedia.org/resource/Coffee") to my page callback. I've tried a few things and nothing's worked so far... http://mysite.com/page/http%3A%2F%2Fdbpedia.org%2Fresource%2FCoffee Completely breaks Drupal's rewriting http://mysite.com/page/?uri=http%3A%2F%2Fdbpedia.org%2Fresource%2FCoffee Gives a 404 http://mysite.com/page/http://dbpedia.org/resource/Coffee Returns just "http:", which makes sense I could probably use $_GET to pull out the whole query string, but I guess I'm hoping for a more 'Drupal' solution. Any suggestions?

    Read the article

  • In XHR, is it possible to distinguish network errors from cross-origin errors?

    - by greim
    http://www.w3.org/TR/access-control/ Reading the CORS spec linked above, it seems to be the case that it's impossible to reliably distinguish between a generic "network error" and a cross-origin access denied error. From the spec: If there is a network error Apply the network error steps. Perform a resource sharing check. If it returns fail, apply the network error steps. http://www.w3.org/TR/access-control/#simple-cross-origin-request0 In my testing, I couldn't locate any features of Firefox's implementation that seem to indicate that the resource sharing check definitely failed. It just switches readyState to 4 and sets status to 0. Ultimately I'd like the ability to pass a success callback, a general fail callback, and an optional cross-origin fail callback, to my function. Thanks for any help or insight.

    Read the article

  • What should I name instances of a twisted.internet.defer.Deferred?

    - by slacy
    I'm writing code using Twisted, and having trouble coming up with a sensible variable name for my twisted internet deferred's. Here are my candidates: d : Too generic, too short, violates pylint rule C0103. def : Conflicts with function defintion builtin. defer : Conflicts with module twisted.internet.defer deferred : OK but pretty long cb : Still too short, violates pylint C0103, conflicts with many callback method names. cback : Too Weird? callback : Conflicts with method Deferred.callback() I'm looking for other suggestions. It seems like most of the Twisted example code uses "d" which is fine for simple invocations, but when you're passing Deferred's around to methods and storing them as member variables, it's really far too descriptive.

    Read the article

  • I can get access to object's properties if method is called from anonymous function, but I can't do

    - by Kirzilla
    Hello, $.Comment = function() { this.alertme = "Alert!"; } $.Comment.prototype.send = function() { var self = this; $.post( self.url, { 'somedata' : self.somedata }, function(data) { //using anonymous function to call object's method self.callback(data); } ); } $.Comment.prototype.callback = function(data) { alert(this.alertme); } This code works great when I'm calling $.Comment.send(), but this code won't work... $.Comment.prototype.send = function() { var self = this; $.post( self.url, { 'somedata' : self.somedata }, self.callback //using direct access to method ); } Please, could you explain me why? Thank you

    Read the article

  • Enableeventvalidation in web user control

    - by Khushi
    Hi, i have a web user control containing a repeater. The repeater contains three buttons. On button click it gives the following error : Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEventValidation="true" % in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. Since user control does not have page directive, so i changed the enableEventValidation to false, but it restricted the itemcommand event of the repeater. Can someone guide me, how to solve this problem?

    Read the article

  • Web Application Architecture (ASP.NET 3.5,JavaScript)

    - by Niv
    hey all , background - I'm using an activx that allow me to access some information on the client side, By using the activex events and callback i'm updating server side from client. i wrote a user control that register all activex's events so when one of the events occuer there is a callback to the server that handle this event. I need to write some other user controls based on this control so on every callback this user controls will be render on the client side. My question is - what is the best way to make a shared infrastructure that handle this events and render the right content base on user controls? is there any other ways i can use ? thanks!

    Read the article

  • What's the difference between => , ()=>, and Unit=>

    - by Malvolio
    I'm trying to represent a function that takes no arguments and returns no value (I'm simulating the setTimeout function in JavaScript, if you must know.) case class Scheduled(time : Int, callback : => Unit) doesn't compile, saying " `val' parameters may not be call-by-name" case class Scheduled(time : Int, callback : () => Unit) compiles, but has to be invoked strangely, instead of Scheduled(40, { println("x") } ) I have to do this Scheduled(40, { () => println("x") } ) What also works is class Scheduled(time : Int, callback : Unit => Unit) but is invoked in an even-less-sensible way Scheduled(40, { x : Unit => println("x") } ) (What would a variable of type Unit be?) What I want of course is a constructor that can be invoke the way I would invoke it if it were an ordinary function: Scheduled(40, println("x") ) Give baby his bottle!

    Read the article

  • APT: Hold packages back from updates without APT Pin

    - by David
    I know about pinning packages with APT; that's not what I want to do. Other questions have been answered with either using pinning or by using pins temporarily. I don't want to do this... What I want to do is keep packages back the same way the kernel has been: # apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: linux-generic-pae linux-headers-generic-pae linux-image-generic-pae The following packages will be upgraded: I want to add tomcat-* and mysql-* and sun-* to this list. In the past, there was a configuration parameter to do this - I've always thought it was something like Apt::Get::HoldPkgs or Apt::HoldPkgs but I can't find it. I want to have these packages held from updates until I specifically request them with an "apt-get install". I found the apt-get configuration Apt::NeverAutoRemove; will this do what I want? Added Question: I notice that Apt::NeverAutoRemove and Apt::Never-MarkAuto-Sections (among others) are not documented so far as I can see; they're not in the manpages. Neither is aptitude::Keep-Unused-Pattern and aptitude::Get-Root-Command. Is there any comprehensive and complete documentation for apt.conf?

    Read the article

  • I'm trying to install VMWare tools on Ubuntu 12.04.2 LTS and I seem to have a problem with Kernel headers

    - by Pedro Irusta
    I have Ubuntu 12.04.2 LTS installed on a VMware machine on Windows 7 host. I seem to have a problem with Kernel headers when trying to install them I did: sudo apt-get install gcc make build-essential linux-headers-$(uname -r) Reading package lists... Done Building dependency tree Reading state information... Done gcc is already the newest version. build-essential is already the newest version. linux-headers-3.5.0-28-generic is already the newest version. make is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 100 not upgraded. However, when installing VMware tools I get the following error: make[1]: Entering directory `/usr/src/linux-headers-3.5.0-28-generic' CC [M] /tmp/vmware-root/modules/vmhgfs-only/backdoor.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/backdoorGcc32.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/bdhandler.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/cpName.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/cpNameLinux.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/cpNameLite.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/dentry.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/dir.o CC [M] /tmp/vmware-root/modules/vmhgfs-only/file.o /tmp/vmware-root/modules/vmhgfs-only/file.c:122:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root/modules/vmhgfs-only/file.c:122:4: warning: (near initialization for ‘HgfsFileFileOperations.fsync’) [enabled by default] CC [M] /tmp/vmware-root/modules/vmhgfs-only/filesystem.o /tmp/vmware-root/modules/vmhgfs-only/filesystem.c:48:28: fatal error: linux/smp_lock.h: No such file or directory compilation terminated. make[2]: *** [/tmp/vmware-root/modules/vmhgfs-only/filesystem.o] Error 1 make[1]: *** [_module_/tmp/vmware-root/modules/vmhgfs-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-28-generic' make: *** [vmhgfs.ko] Error 2 make: Leaving directory `/tmp/vmware-root/modules/vmhgfs-only' Any help appreciated!

    Read the article

  • How to fix "apt-get upgrade" errors?

    - by mohamad farid bin abdullah
    I get these errors when I try to upgrade the packages installed on my Ubuntu system: m@m-desktop ~ $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2 not fully installed or removed. After this operation, 0B of additional disk space will be used. Do you want to continue [Y/n]? y Setting up drbd8-source (2:8.3.7-1ubuntu2.3) ... Removing old drbd8-8.3.7 DKMS files... ------------------------------ Deleting module version: 8.3.7 completely from the DKMS tree. ------------------------------ Done. Loading new drbd8-8.3.7 DKMS files... First Installation: checking all kernels... Building only for 2.6.35-22-generic Building for architecture i386 Building initial module for 2.6.35-22-generic Error! Bad return status for module build on kernel: 2.6.35-22-generic (i386) Consult the make.log in the build directory /var/lib/dkms/drbd8/8.3.7/build/ for more information. dpkg: error processing drbd8-source (--configure): subprocess installed post-installation script returned error exit status 10 dpkg: dependency problems prevent configuration of drbd8-utils: drbd8-utils depends on drbd8-source; however: Package drbd8-source is not configured yet. dpkg: error processing drbd8-utils (--configure): dependency problems - leaving unconfigured No apport report written because the error message indicates its a followup error from a previous failure. Errors were encountered while processing: drbd8-source drbd8-utils E: Sub-process /usr/bin/dpkg returned an error code (1) m@m-desktop ~ $

    Read the article

  • Fixing unbootable installation on LVM root from Desktop LiveCD

    - by intuited
    I just did an installation from the 10.10 Desktop LiveCD, making the root volume an LVM LV. Apparently this is not supported; I managed it by taking these steps before starting the GUI installer app: installing the lvm2 package on the running system creating an LVM-type partition on the system hard drive creating a physical volume, a volume group and a root LV using the LVM tools. I also created a second LV for /var; this I don't think is relevant. creating a filesystem (ext4) on each of the two LVs. After taking these steps, the GUI installer offered the two LVs as installation targets; I gladly accepted, also putting /boot on a primary partition separate from the LVM partition. Installation seemed to go smoothly, and I've verified that both the root and var volumes do contain acceptable-looking directory structures. However, booting fails; if I understood correctly what happened, I was dropped into a busybox running in the initrd filesystem. Although I haven't worked through the entirety of the grub2 docs yet, it looks like the entry that tries to boot my new system is correct: menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod part_msdos insmod ext2 set root='(hd0,msdos3)' search --no-floppy --fs-uuid --set $UUID_OF_BOOT_FILESYSTEM linux /vmlinuz-2.6.35-22-generic root=/dev/mapper/$LVM_VOLUME_GROUP-root ro quiet splash initrd /initrd.img-2.6.35-22-generic } Note that $VARS are replaced in the actual grub.cfg with their corresponding values. I rebooted back into the livecd and have unpacked the initrd image into a temp directory. It looks like the initrd image lacks LVM functionality. For example, if I'm reading /usr/share/initramfs-tools/hooks/lvm2 (installed with lvm2 on the livecd-booted system, not present on the installed one) correctly, an lvm executable should be situated in /sbin; that is not the case. What's the best way to remedy this situation? I realize that it would be easier to just use the alternate install CD, which apparently supports LVM, but I don't want to wait for it to download and then have to reinstall.

    Read the article

  • A good substitute for ASMX web service methods, but not a general handler

    - by Saeed Neamati
    The best thing I like about ASP.NET MVC, is that you can directly call a server method (called action), from the client. This is so convenient, and so straightforward, that I really like to implement such a model in ASP.NET WebForms too. However, in ASP.NET WebForms, to call a server method from the client, you should either use Page Methods, or Web Services, both of which use SOAP as their communication protocol (though JSON can also be used). There is also another substitution, which is using Generic Handlers. The problem with them however is that, a separate Generic Handler should be written for each server method. In other words, each Generic Handler works like a simple method. Is there anyway else to imitate MVC model in ASP.NET WebForms? Please note that I can't change to MVC platform right now, cause the project at our hand is a big project and we don't have required resources and time to change our platform. What we seek, is a simple MVC model implementation for our AJAX calls. A problem that we have with Web Services, is the known problem of SoapException, and we're not interested in creating custom SoapExctensions.

    Read the article

  • Ubuntu 14.04 ATI Radeon open source driver with distorted video playback

    - by Bwog
    Video in VLC or SMplayer is often in black and white with washed-out colors in the wrong place (translated considerably). Moreover, the last video image is often visible when a new video is started and persist as long as the new video is running. Colors have a recognizable shape (e.g. a persons clothes or face), but can be obviously incorrect (e.g. green or purples faces). This is independent of the format of the videos (mp4, mkv, wmv). Sometimes all problems disappear when a new video is started, but often only a reboot restores normal video. Ubuntu was upgraded to 14.04 and is fully updated. Processor intel core i5-2500K cpu. gpu: amd/ati Radeon HD 7950. graphics: gallium 0.4 on AMD Tahiti. xorg xserver amd/ati display driver wrapper from xserver-xorg-video-ati. :~$ Xorg -version X.Org X Server 1.15.1 Release Date: 2014-04-13 X Protocol Version 11, Revision 0 Build Operating System: Linux 3.2.0-37-generic x86_64 Ubuntu Current Operating System: Linux Mare 3.13.0-29-generic #53-Ubuntu SMP Wed Jun 4 21:00:20 UTC 2014 x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.13.0-29-generic.efi.signed root=UUID=number ro Build Date: 16 April 2014 01:36:29PM xorg-server 2:1.15.1-0ubuntu2 Current version of pixman: 0.30.2 ~$ lspci | grep VGA 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] Question: how to restore regular video playback?

    Read the article

  • How to fix E: Internal Error, No file name for libc6

    - by Loren Ramly
    How to fix E: Internal Error, No file name for libc6, Like that will show If I do: $ sudo apt-get upgrade or $ sudo apt-get install package This is example : $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: ginn hplip hplip-data libdrm-dev libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libgrip0 libhpmud0 libkms1 libsane-hpaio libunity-2d-private0 libunity-core-5.0-5 linux-generic-pae linux-headers-generic-pae linux-image-generic-pae printer-driver-hpcups printer-driver-hpijs unity unity-2d-common unity-2d-panel unity-2d-shell unity-2d-spread unity-common unity-services The following packages will be upgraded: alsa-base firefox firefox-globalmenu firefox-gnome-support firefox-locale-en icedtea-6-jre-cacao icedtea-6-jre-jamvm icedtea-7-jre-jamvm libdbus-glib-1-2 libdbus-glib-1-dev libgnutls-dev libgnutls-openssl27 libgnutls26 libgnutlsxx27 libssl-dev libssl-doc libssl1.0.0 linux-sound-base openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib openssl sudo 27 upgraded, 0 newly installed, 0 to remove and 26 not upgraded. 3 not fully installed or removed. Need to get 0 B/126 MB of archives. After this operation, 3,072 B of additional disk space will be used. Do you want to continue [Y/n]? y E: Internal Error, No file name for libc6 I have follow instruction from here E: Internal Error, No file name for libssl1.0.0 . Which do: sudo apt-get update sudo apt-get clean sudo apt-get install -fy sudo dpkg -i /var/cache/apt/archives/*.deb sudo dpkg --configure -a sudo apt-get install -fy sudo apt-get dist-upgrade But stuck with same error E: Internal Error, No file name for libc6 when do command sudo apt-get install -fy. And I've been looking on google, but have not been successful until now. Thanks.

    Read the article

  • A Look Inside JSR 360 - CLDC 8

    - by Roger Brinkley
    If you didn't notice during JavaOne the Java Micro Edition took a major step forward in its consolidation with Java Standard Edition when JSR 360 was proposed to the JCP community. Over the last couple of years there has been a focus to move Java ME back in line with it's big brother Java SE. We see evidence of this in JCP itself which just recently merged the ME and SE/EE Executive Committees into a single Java Executive Committee. But just before that occurred JSR 360 was proposed and approved for development on October 29. So let's take a look at what changes are now being proposed. In a way JSR 360 is returning back to the original roots of Java ME when it was first introduced. It was indeed a subset of the JDK 4 language, but as Java progressed many of the language changes were not implemented in the Java ME. Back then the tradeoff was still a functionality, footprint trade off but the major market was feature phones. Today the market has changed and CLDC, while it will still target feature phones, will have it primary emphasis on embedded devices like wireless modules, smart meters, health care monitoring and other M2M devices. The major changes will come in three areas: language feature changes, library changes, and consolidating the Generic Connection Framework.  There have been three Java SE versions that have been implemented since JavaME was first developed so the language feature changes can be divided into changes that came in JDK 5 and those in JDK 7, which mostly consist of the project Coin changes. There were no language changes in JDK 6 but the changes from JDK 5 are: Assertions - Assertions enable you to test your assumptions about your program. For example, if you write a method that calculates the speed of a particle, you might assert that the calculated speed is less than the speed of light. In the example code below if the interval isn't between 0 and and 1,00 the an error of "Invalid value?" would be thrown. private void setInterval(int interval) { assert interval > 0 && interval <= 1000 : "Invalid value?" } Generics - Generics add stability to your code by making more of your bugs detectable at compile time. Code that uses generics has many benefits over non-generic code with: Stronger type checks at compile time. Elimination of casts. Enabling programming to implement generic algorithms. Enhanced for Loop - the enhanced for loop allows you to iterate through a collection without having to create an Iterator or without having to calculate beginning and end conditions for a counter variable. The enhanced for loop is the easiest of the new features to immediately incorporate in your code. In this tip you will see how the enhanced for loop replaces more traditional ways of sequentially accessing elements in a collection. void processList(Vector<string> list) { for (String item : list) { ... Autoboxing/Unboxing - This facility eliminates the drudgery of manual conversion between primitive types, such as int and wrapper types, such as Integer.  Hashtable<Integer, string=""> data = new Hashtable<>(); void add(int id, String value) { data.put(id, value); } Enumeration - Prior to JDK 5 enumerations were not typesafe, had no namespace, were brittle because they were compile time constants, and provided no informative print values. JDK 5 added support for enumerated types as a full-fledged class (dubbed an enum type). In addition to solving all the problems mentioned above, it allows you to add arbitrary methods and fields to an enum type, to implement arbitrary interfaces, and more. Enum types provide high-quality implementations of all the Object methods. They are Comparable and Serializable, and the serial form is designed to withstand arbitrary changes in the enum type. enum Season {WINTER, SPRING, SUMMER, FALL}; } private Season season; void setSeason(Season newSeason) { season = newSeason; } Varargs - Varargs eliminates the need for manually boxing up argument lists into an array when invoking methods that accept variable-length argument lists. The three periods after the final parameter's type indicate that the final argument may be passed as an array or as a sequence of arguments. Varargs can be used only in the final argument position. void warning(String format, String... parameters) { .. for(String p : parameters) { ...process(p);... } ... } Static Imports -The static import construct allows unqualified access to static members without inheriting from the type containing the static members. Instead, the program imports the members either individually or en masse. Once the static members have been imported, they may be used without qualification. The static import declaration is analogous to the normal import declaration. Where the normal import declaration imports classes from packages, allowing them to be used without package qualification, the static import declaration imports static members from classes, allowing them to be used without class qualification. import static data.Constants.RATIO; ... double r = Math.cos(RATIO * theta); Annotations - Annotations provide data about a program that is not part of the program itself. They have no direct effect on the operation of the code they annotate. There are a number of uses for annotations including information for the compiler, compiler-time and deployment-time processing, and run-time processing. They can be applied to a program's declarations of classes, fields, methods, and other program elements. @Deprecated public void clear(); The language changes from JDK 7 are little more familiar as they are mostly the changes from Project Coin: String in switch - Hey it only took us 18 years but the String class can be used in the expression of a switch statement. Fortunately for us it won't take that long for JavaME to adopt it. switch (arg) { case "-data": ... case "-out": ... Binary integral literals and underscores in numeric literals - Largely for readability, the integral types (byte, short, int, and long) can also be expressed using the binary number system. and any number of underscore characters (_) can appear anywhere between digits in a numerical literal. byte flags = 0b01001111; long mask = 0xfff0_ff08_4fff_0fffl; Multi-catch and more precise rethrow - A single catch block can handle more than one type of exception. In addition, the compiler performs more precise analysis of rethrown exceptions than earlier releases of Java SE. This enables you to specify more specific exception types in the throws clause of a method declaration. catch (IOException | InterruptedException ex) { logger.log(ex); throw ex; } Type Inference for Generic Instance Creation - Otherwise known as the diamond operator, the type arguments required to invoke the constructor of a generic class can be replaced with an empty set of type parameters (<>) as long as the compiler can infer the type arguments from the context.  map = new Hashtable<>(); Try-with-resource statement - The try-with-resources statement is a try statement that declares one or more resources. A resource is an object that must be closed after the program is finished with it. The try-with-resources statement ensures that each resource is closed at the end of the statement.  try (DataInputStream is = new DataInputStream(...)) { return is.readDouble(); } Simplified varargs method invocation - The Java compiler generates a warning at the declaration site of a varargs method or constructor with a non-reifiable varargs formal parameter. Java SE 7 introduced a compiler option -Xlint:varargs and the annotations @SafeVarargs and @SuppressWarnings({"unchecked", "varargs"}) to supress these warnings. On the library side there are new features that will be added to satisfy the language requirements above and some to improve the currently available set of APIs.  The library changes include: Collections update - New Collection, List, Set and Map, Iterable and Iteratator as well as implementations including Hashtable and Vector. Most of the work is too support generics String - New StringBuilder and CharSequence as well as a Stirng formatter. The javac compiler  now uses the the StringBuilder instead of String Buffer. Since StringBuilder is synchronized there is a performance increase which has necessitated the wahat String constructor works. Comparable interface - The comparable interface works with Collections, making it easier to reuse. Try with resources - Closeable and AutoCloseable Annotations - While support for Annotations is provided it will only be a compile time support. SuppressWarnings, Deprecated, Override NIO - There is a subset of NIO Buffer that have been in use on the of the graphics packages and needs to be pulled in and also support for NIO File IO subset. Platform extensibility via Service Providers (ServiceLoader) - ServiceLoader interface dos late bindings of interface to existing implementations. It helpe to package an interface and behavior of the implementation at a later point in time.Provider classes must have a zero-argument constructor so that they can be instantiated during loading. They are located and instantiated on demand and are identified via a provider-configuration file in the METAINF/services resource directory. This is a mechansim from Java SE. import com.XYZ.ServiceA; ServiceLoader<ServiceA> sl1= new ServiceLoader(ServiceA.class); Resources: META-INF/services/com.XYZ.ServiceA: ServiceAProvider1 ServiceAProvider2 ServiceAProvider3 META-INF/services/ServiceB: ServiceBProvider1 ServiceBProvider2 From JSR - I would rather use this list I think The Generic Connection Framework (GCF) was previously specified in a number of different JSRs including CLDC, MIDP, CDC 1.2, and JSR 197. JSR 360 represents a rare opportunity to consolidated and reintegrate parts that were duplicated in other specifications into a single specification, upgrade the APIs as well provide new functionality. The proposal is to specify a combined GCF specification that can be used with Java ME or Java SE and be backwards compatible with previous implementations. Because of size limitations as well as the complexity of the some features like InvokeDynamic and Unicode 6 will not be included. Additionally, any language or library changes in JDK 8 will be not be included. On the upside, with all the changes being made, backwards compatibility will still be maintained. JSR 360 is a major step forward for Java ME in terms of platform modernization, language alignment, and embedded support. If you're interested in following the progress of this JSR see the JSR's java.net project for details of the email lists, discussions groups.

    Read the article

< Previous Page | 71 72 73 74 75 76 77 78 79 80 81 82  | Next Page >