Search in sources :

Example 16 with Window

use of io.jmix.ui.component.Window in project jmix by jmix-framework.

the class FilterDelegateImpl method setFilterEntity.

/**
 * Sets filter entity, creates condition editor components and applies filter if necessary
 */
@Override
public void setFilterEntity(FilterEntity filterEntity) {
    this.filterEntity = filterEntity;
    conditions = filterParser.getConditions(filter, filterEntity.getXml());
    prevConditions = conditions;
    initialConditions = conditions.toConditionsList();
    for (AbstractCondition condition : initialConditions) {
        if (!suitableCondition(condition)) {
            String message = String.format(getMainMessage("filter.inappropriate.filter"), filterEntity.getName(), adapter.getMetaClass().getName());
            getNotifications().create(Notifications.NotificationType.HUMANIZED).withCaption(message).show();
            setFilterEntity(adHocFilter);
            break;
        }
        condition.addListener(new AbstractCondition.Listener() {

            @Override
            public void captionChanged() {
            }

            @Override
            public void paramChanged(Param oldParam, Param newParam) {
                updateFilterModifiedIndicator();
            }
        });
    }
    // If there are window parameters named as filter parameters, assign values to the corresponding
    // filter params. Together with passing a filter code in 'filter' window parameter it allows to open an
    // arbitrary filter with parameters regardless of a user defined default filter.
    Window window = getWindow();
    for (AbstractCondition condition : conditions.toConditionsList()) {
        if (condition.getParam() != null) {
            for (Map.Entry<String, Object> entry : window.getContext().getParams().entrySet()) {
                if (entry.getKey().equals(condition.getParam().getName()))
                    condition.getParam().parseValue((String) entry.getValue());
            }
        }
    }
    saveInitialFilterState();
    if (filtersLookupDisplayed) {
        filtersLookupListenerEnabled = false;
        filtersLookup.setValue(filterEntity);
        filtersLookupListenerEnabled = true;
    }
    setFilterActionsEnabled();
    setFilterActionsVisible();
    fillConditionsLayout(ConditionsFocusType.FIRST);
    if (delayedFocus) {
        delayedFocus = false;
        requestFocus();
    } else {
        requestFocusToParamEditComponent();
    }
    setConditionsLayoutVisible(true);
    if (BooleanUtils.isTrue(filterEntity.getIsSet()) || (filterEntity.getFolder() != null && BooleanUtils.isNotFalse(filterEntity.getApplyDefault()))) {
        apply(true);
    }
    updateWindowCaption();
    for (Filter.FilterEntityChangeListener listener : filterEntityChangeListeners) {
        listener.filterEntityChanged(filterEntity);
    }
}
Also used : Window(io.jmix.ui.component.Window) FilterSelectWindow(com.haulmont.cuba.gui.components.filter.filterselect.FilterSelectWindow) Filter(com.haulmont.cuba.gui.components.Filter) QueryFilter(com.haulmont.cuba.core.global.filter.QueryFilter) AbstractCondition(com.haulmont.cuba.gui.components.filter.condition.AbstractCondition) ParamsMap(io.jmix.core.common.util.ParamsMap)

Example 17 with Window

use of io.jmix.ui.component.Window in project jmix by jmix-framework.

the class FilterDelegateImpl method updateWindowCaption.

protected void updateWindowCaption() {
    Window window = getWindow();
    String filterTitle;
    if (filterMode == FilterMode.GENERIC_MODE && filterEntity != null && filterEntity != adHocFilter) {
        filterTitle = getFilterCaption(filterEntity);
    } else {
        filterTitle = null;
    }
    if (windowCaptionUpdateEnabled) {
        if (initialWindowCaption == null) {
            initialWindowCaption = window.getCaption();
        }
        getWindowManager().setWindowCaption(window, initialWindowCaption, filterTitle);
    }
    String newCaption = Strings.isNullOrEmpty(filterTitle) ? caption : caption + ": " + filterTitle;
    captionChangedListener.accept(newCaption);
}
Also used : Window(io.jmix.ui.component.Window) FilterSelectWindow(com.haulmont.cuba.gui.components.filter.filterselect.FilterSelectWindow)

Example 18 with Window

use of io.jmix.ui.component.Window in project jmix by jmix-framework.

the class CubaComponentsHelper method getFilterComponentPath.

public static String getFilterComponentPath(Filter filter) {
    StringBuilder sb = new StringBuilder(filter.getId() != null ? filter.getId() : "filterWithoutId");
    Frame frame = filter.getFrame();
    while (frame != null) {
        sb.insert(0, ".");
        String s = frame.getId() != null ? frame.getId() : "frameWithoutId";
        if (s.contains(".")) {
            s = "[" + s + "]";
        }
        sb.insert(0, s);
        if (frame instanceof Window) {
            break;
        }
        frame = frame.getFrame();
    }
    return sb.toString();
}
Also used : Window(io.jmix.ui.component.Window) Frame(io.jmix.ui.component.Frame)

Example 19 with Window

use of io.jmix.ui.component.Window in project jmix by jmix-framework.

the class CubaFoldersPane method setupUpdateTimer.

protected void setupUpdateTimer() {
    if (cubaProperties.isFoldersPaneEnabled()) {
        int period = cubaProperties.getAppFoldersRefreshPeriodSec() * 1000;
        timer = new FoldersPaneTimer();
        timer.setRepeating(true);
        timer.setDelay(period);
        timer.addActionListener(createAppFolderUpdater());
        timer.start();
        if (this.isAttached()) {
            AppUI ui = AppUI.getCurrent();
            stopExistingFoldersPaneTimer(ui);
            ui.addTimer(timer);
        } else if (frame != null) {
            Window window = CubaComponentsHelper.getWindowImplementation(frame);
            if (window == null) {
                throw new IllegalStateException("Null window for CubaFoldersPane");
            }
            AbstractComponent topLevelFrame = window.unwrapComposition(AbstractComponent.class);
            timer.extend(topLevelFrame);
        }
    }
}
Also used : Window(io.jmix.ui.component.Window) AppUI(io.jmix.ui.AppUI)

Example 20 with Window

use of io.jmix.ui.component.Window in project jmix by jmix-framework.

the class WebAccordion method onSelectedTabChangeListener.

@Override
protected void onSelectedTabChangeListener(TabSheet.SelectedTabChangeEvent event) {
    super.onSelectedTabChangeListener(event);
    Window window = ComponentsHelper.getWindow(WebAccordion.this);
    if (window != null) {
        if (window.getFrameOwner() instanceof LegacyFrame) {
            DsContext dsContext = ((LegacyFrame) window.getFrameOwner()).getDsContext();
            if (dsContext != null) {
                ((DsContextImplementation) dsContext).resumeSuspended();
            }
        }
    } else {
        LoggerFactory.getLogger(AccordionImpl.class).warn("Please specify Frame for Accordion");
    }
}
Also used : Window(io.jmix.ui.component.Window) AccordionImpl(io.jmix.ui.component.impl.AccordionImpl) DsContextImplementation(com.haulmont.cuba.gui.data.impl.DsContextImplementation) DsContext(com.haulmont.cuba.gui.data.DsContext) LegacyFrame(com.haulmont.cuba.gui.screen.compatibility.LegacyFrame)

Aggregations

Window (io.jmix.ui.component.Window)29 FilterSelectWindow (com.haulmont.cuba.gui.components.filter.filterselect.FilterSelectWindow)5 LegacyFrame (com.haulmont.cuba.gui.screen.compatibility.LegacyFrame)4 FilterEntity (com.haulmont.cuba.security.entity.FilterEntity)4 MetaClass (io.jmix.core.metamodel.model.MetaClass)4 Filter (com.haulmont.cuba.gui.components.Filter)3 Action (io.jmix.ui.action.Action)3 Component (io.jmix.ui.component.Component)3 HashMap (java.util.HashMap)3 WindowManager (com.haulmont.cuba.gui.WindowManager)2 AbstractCondition (com.haulmont.cuba.gui.components.filter.condition.AbstractCondition)2 DsContext (com.haulmont.cuba.gui.data.DsContext)2 DsContextImplementation (com.haulmont.cuba.gui.data.impl.DsContextImplementation)2 Messages (io.jmix.core.Messages)2 UiScreenProperties (io.jmix.ui.UiScreenProperties)2 WindowInfo (io.jmix.ui.WindowInfo)2 BaseAction (io.jmix.ui.action.BaseAction)2 Frame (io.jmix.ui.component.Frame)2 Screen (io.jmix.ui.screen.Screen)2 CubaProperties (com.haulmont.cuba.CubaProperties)1