Search in sources :

Example 1 with DisplayableActionFilter

use of org.eclipse.scout.rt.ui.html.json.action.DisplayableActionFilter in project scout.rt by eclipse.

the class JsonStatusMenuMapping method initJsonProperties.

@Override
protected void initJsonProperties(T model) {
    super.initJsonProperties(model);
    putJsonProperty(new JsonProperty<T>(IStatusMenuMapping.PROP_CODES, model) {

        @Override
        protected List<Integer> modelValue() {
            return getModel().getCodes();
        }

        @Override
        @SuppressWarnings("unchecked")
        public Object prepareValueForToJson(Object value) {
            // Do NOT remove the cast! It is required to use the correct constructor.
            return new JSONArray((List<Integer>) value);
        }
    });
    putJsonProperty(new JsonProperty<T>(IStatusMenuMapping.PROP_SEVERITIES, model) {

        @Override
        protected List<Integer> modelValue() {
            return getModel().getSeverities();
        }

        @Override
        @SuppressWarnings("unchecked")
        public Object prepareValueForToJson(Object value) {
            // Do NOT remove the cast! It is required to use the correct constructor.
            return new JSONArray((List<Integer>) value);
        }
    });
    putJsonProperty(new JsonProperty<T>(IStatusMenuMapping.PROP_MENU, model) {

        @Override
        protected IMenu modelValue() {
            return getModel().getMenu();
        }

        @Override
        public Object prepareValueForToJson(Object value) {
            // The menu is managed by the parent -> don't create a new adapter but use the one from the parent instead
            IJsonAdapter adapter = getParent().getAdapter((IMenu) value, new DisplayableActionFilter<>());
            if (adapter == null) {
                return null;
            }
            return adapter.getId();
        }
    });
}
Also used : IMenu(org.eclipse.scout.rt.client.ui.action.menu.IMenu) JSONArray(org.json.JSONArray) List(java.util.List) IJsonAdapter(org.eclipse.scout.rt.ui.html.json.IJsonAdapter) DisplayableActionFilter(org.eclipse.scout.rt.ui.html.json.action.DisplayableActionFilter)

Aggregations

List (java.util.List)1 IMenu (org.eclipse.scout.rt.client.ui.action.menu.IMenu)1 IJsonAdapter (org.eclipse.scout.rt.ui.html.json.IJsonAdapter)1 DisplayableActionFilter (org.eclipse.scout.rt.ui.html.json.action.DisplayableActionFilter)1 JSONArray (org.json.JSONArray)1