Hi Vladimir,

Sorry I misunderstood your question.

>changed. Cancel action fires a question alert for Save/Don't
>save/Cancel. If OkButton is not enabled, Save is not possible. How to
>know that OkButton is enabled?

In cancel action you can check  fOkButton.isEnabled(). Isn't this ok for you
or am I missing something?

>But I need to know the state of the ULCMandatoryAndEnabler. I

You will have to extend ULCMandatoryAndEnabler as follows:

Client-side class:

  public class UIMyEnabler extends UIMandatoryAndEnabler implements
IDirtyDataOwner {
        private boolean fIsEnabling = false;

        public void setEnabled(boolean state) {
            super.setEnabled(state);
            fIsEnabling = super.isEnabling();
            getSession().addDirtyDataOwner(this);
        }

        public void flushDirtyData() {
            updateStateULC("enabling", fIsEnabling);
        }
    }

Server-side class:

    public  class ULCMyEnabler extends ULCMandatoryAndEnabler {
        private boolean fEnabling = false;

        protected String typeString() {
            return UIMyEnabler.class.getName(); // change this with a string
that specifies full class name
        }

        protected IDispatcher createDispatcher() {
            return new ULCMyEnablerDispatcher();
        }


        protected class ULCMyEnablerDispatcher extends ULCProxyDispatcher {
            public final void updateEnabling(boolean enabling) {
                ULCMyEnabler.this.updateEnabling(enabling);
            }
        }

        public void updateEnabling(boolean enabling) {
            fEnabling = enabling;
        }

        public boolean isEnabling() {
            return fEnabling;
        }
    }

I hope this helps.

Thanks and regards,

Janak

>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED] Behalf Of Vladimír Turek
>Sent: Friday, February 16, 2007 11:23 AM
>To: [email protected]
>Subject: Re: [ULC-developer] Current state of a ULCMandatoryAndEnabler
>
>
>Hi Janak,
>
>Thanks. But I need to know the state of the ULCMandatoryAndEnabler. I
>have a dialog with mandatory fields and OkButton is enabled if all
>mandatory fields are filled and at least one field in dialog has
>changed. Cancel action fires a question alert for Save/Don't
>save/Cancel. If OkButton is not enabled, Save is not possible. How to
>know that OkButton is enabled?
>
>Here is my code:
>
>private ULCDialog fDialog;
>private ULCTextField fAdress;
>private ULCTextField fCity;
>private ULCTextField fZip;
>private ULCTextField fCountry;
>private ULCButton fOkButton;
>private ULCButton fCancelButton;
>
>private void configureEnabler() {
>    // Ok Button: ULCHasChangedEnabler + ULCMandatoryAndEnabler
>    fHasChangedEnabler = new ULCHasChangedEnabler();
>    fHasChangedEnabler.add(fAdress);
>    fHasChangedEnabler.add(fCity);
>    fHasChangedEnabler.add(fZip);
>    fHasChangedEnabler.add(fCountry);
>    fHasChangedEnabler.reset();
>
>    fMandatoryAndEnabler = new ULCMandatoryAndEnabler();
>    fMandatoryAndEnabler.setHighLightColor(new Color(255,194,194));
>    fMandatoryAndEnabler.add(fAdress);
>    fMandatoryAndEnabler.add(fCity);
>    fMandatoryAndEnabler.add(fHasChangedEnabler);
>
>    fOkButton.setEnabler(fMandatoryAndEnabler);
>}
>
>public boolean isOkButtonEnabling() {
>    // how to know that the OkButton is enabling ?
>    // => all mandatory fields are filled and at least one field
>has changed
>    // return fHasChangedEnabler.isEnabling() isn't right
>    return false;
>}
>
>public IAction createOkAction() {
>    return new AbstractAction() {
>        public void actionPerformed(ActionEvent event) {
>            save();
>        }
>    };
>}
>
>public IAction createCancelAction() {
>    return new AbstractAction() {
>        public void actionPerformed(ActionEvent event) {
>            if (isOkButtonEnabling()) {
>                // ULCAlert for Save/Don't save/Cancel
>            } else {
>                // ULCAlert for Don't save/Cancel
>            }
>        }
>    };
>}
>
>
>Regards
>Vladimir Turek
>
>
>
>Janak Mulani napsal(a):
>> Hi Vladimir,
>>
>> There is a method ULCHasChangedEnabler#isEnabling().
>>
>> It returns the current state of the enabler.
>>
>> The state is updated in the next roundtrip initiated from the client.
>>
>> Thanks and regards,
>>
>> Janak
>>
>>
>>> -----Original Message-----
>>> From: [EMAIL PROTECTED]
>>> [mailto:[EMAIL PROTECTED] Behalf Of Vladimír Turek
>>> Sent: Thursday, February 15, 2007 11:32 AM
>>> To: [email protected]
>>> Subject: [ULC-developer] Current state of a ULCMandatoryAndEnabler
>>>
>>>
>>> Hello.
>>>
>>> I need to know the current state of a ULCMandatoryAndEnabler. In API
>>> isn't a method like ULCHasChangedEnabler.isEnabling.
>>>
>>> Do you have any suggestion?
>>>
>>> Regards
>>>
>>> Vladimir Turek
>>>
>>>
>>> _______________________________________________
>>> ULC-developer mailing list
>>> [email protected]
>>> http://lists.canoo.com/mailman/listinfo/ulc-developer
>>>
>>
>>
>_______________________________________________
>ULC-developer mailing list
>[email protected]
>http://lists.canoo.com/mailman/listinfo/ulc-developer

_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to