Skip to main content

Spark TextInput for Currency values

In my project, I wanted to have an spark TextInput to show currency values.
While formatting it should show unformatted number.
The way I did it is by creating a new CurrencyTextInput class extending spark TextInput.
Code for the component is (CurrencyTextInput.as):

package com.abcd.component
{
    import flash.events.Event;
    import flash.events.FocusEvent;

    import spark.components.TextInput;
    import spark.formatters.CurrencyFormatter;

    public class CurrencyTextInput extends TextInput
    {
        public function CurrencyTextInput()
        {
            super();
            formatter = new CurrencyFormatter();
            formatter.currencySymbol = "£";
            formatter.fractionalDigits = 2;
            formatter.useGrouping = true;
            formatter.useCurrencySymbol = true;
            formatter.negativeCurrencyFormat = 1;
            formatter.trailingZeros = true;
        }

        public var formatter:CurrencyFormatter = null;

        public var formatterRegExp:RegExp = /[,£ ]/g;

        [Inspectable(category = "General", defaultValue = "")]
        override public function get text():String
        {
            return super.text.replace(formatterRegExp, "");
        }

        [Bindable("change")]
        [Bindable("textChanged")]
        [CollapseWhiteSpace] // Compiler will strip leading and trailing whitespace from text string.
        override public function set text(value:String):void
        {
            super.text = formatter.format(value);

            // Trigger bindings to textChanged.
            dispatchEvent(new Event("textChanged"));
        }

        /**
         * Flush out [,] and currency symbol characters before getting focus
         * @param    event
         */
        override protected function focusInHandler(event:FocusEvent):void
        {
            super.focusInHandler(event);
            if (this.focusEnabled)
                super.text = text.replace(formatterRegExp, "");
        }

        /**
         * Format data before lost focus event happen
         * @param    event
         */
        override protected function focusOutHandler(event:FocusEvent):void
        {
            super.focusOutHandler(event);
            super.text = formatter.format(text);
        }
    }
}

The way to use this component is:

<fx:declarations>
    <s:currencyformatter
        currencysymbol="{resourceManager.getString(ApplicationConstants.RESOURCE_BUNDLE_NAME, 'currency.symbol')}"
        fractionaldigits="2"
        id="currencyFormatter"
        negativecurrencyformat="1"
        trailingzeros="true"
        usecurrencysymbol="true"
        usegrouping="true"/>
</fx:declarations>
<fx:Script>
   <![CDATA[
   [Bindable]
       public var currencyFormatterRegExp:RegExp = new RegExp('[,' + resourceManager.getString(ApplicationConstants.RESOURCE_BUNDLE_NAME, 'currency.symbol') + ' ]', 'g');
   ]]>
</fx:Script>
   
<component:CurrencyTextInput
    width="217"
    fontWeight="bold"
    textAlign="right"
    text="@{billingValue}"
    formatterRegExp="{currencyFormatterRegExp}"
    formatter="{currencyFormatter}" restrict="0-9"/>

Comments

Popular posts from this blog

ElasticSearch max file descriptors too low error

ElasticSearch 5.x requires a minimum of Max file descriptors 65536 and Max virtual memory areas 262144.
It throws an error on start-up if these are set to very low value.
ERROR: bootstrap checks failed max file descriptors [16384] for elasticsearch process is too low, increase to at least [65536] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Check current values using:
$ cat /proc/sys/fs/file-max 16384 $ cat /proc/sys/vm/max_map_count 65530 $ ulimit -Hn 16384 $ ulimit -Sn 4096
To fix this, following files need to change/add below settings:
Recommended: Add a new file 99-elastic.conf under /etc/security/limits.d with following settings:
elasticsearch - nofile 800000 elasticsearch - nproc 16384 defaultusername - nofile 800000 defaultusername - nproc 16384 Alternatively, edit /etc/sysctl.conf with following settings:
fs.file-max = 800000 vm.max_map_count=300000

Procedure for name and date of birth change (Pune)

For change of name, the form (scribd) is available free of cost at Government Book Depot (Shaskiya Granthagar), which is located near Collector’s office, next to Saint Helena's School. The postal address is:
Government Photozinco Press Premises and Book Depot,
5, Photozinco Press Road, Pune, MH, 411001.
Wikimapia link

Charges for name or date of birth change, in the Maharashtra Government Gazette:
INR 120.00 per insertion (for two copies of the Gazette)
For backward class applicants: INR 60.00
Charges for extra copy of the Gazette: INR 15.00 per copy (two copies are enough, so you may not want to pay extra for extra copies).

Backward class applicants are required to submit a xerox of caste certificate of old name as issued by the Collector of the District concerned.

Once the form is duly submitted, it normally takes 10 to 15 days for publication of advertisement in the Maharashtra Government Gazette. The Gazette copy reaches to the address filled in the form within next 7 to 15 day…

ElasticSearch Curator

Curator is a tool from Elastic to help manage your ElasticSearch cluster.
For certain logs/data, we use one ElasticSearch index per year/month/day and might keep a rolling 7 day window of history.
This means that every day we need to create, backup, and delete some indices.
Curator helps make this process automated and repeatable.

InstallationCurator is written in Python, so will need pip to install it:
pip install elasticsearch-curator curator --config ./curator_cluster_config.yml curator_actions.yml --dry-run
ConfigurationCreate a file curator_cluster_config.yml with following contents:
--- # Remember, leave a key empty if there is no value. None will be a string, not a Python "NoneType" client: hosts: - "es_coordinating_01.singhaiuklimited.com" port: 9200 url_prefix: use_ssl: True # The certificate file is the CA certificate used to sign all ES node certificates. # Use same CA certificate to generate and sign the certificate running curator (specif…