Search in sources :

Example 6 with ITab

use of org.apache.wicket.extensions.markup.html.tabs.ITab in project midpoint by Evolveum.

the class PageUserHistory method createMainPanel.

@Override
protected AbstractObjectMainPanel<UserType> createMainPanel(String id) {
    return new FocusMainPanel<UserType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), this) {

        @Override
        protected List<ITab> createTabs(final PageAdminObjectDetails<UserType> parentPage) {
            List<ITab> tabs = new ArrayList<>();
            FocusTabVisibleBehavior authorization = new FocusTabVisibleBehavior(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_BASIC_URL);
            tabs.add(new PanelTab(parentPage.createStringResource("pageAdminFocus.basic"), authorization) {

                private static final long serialVersionUID = 1L;

                @Override
                public WebMarkupContainer createPanel(String panelId) {
                    return createFocusDetailsTabPanel(panelId, parentPage);
                }
            });
            //hidden, will be displayed in future version
            //                authorization = new FocusTabVisibleBehavior(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_PROJECTIONS_URL);
            //                tabs.add(
            //                        new CountablePanelTab(parentPage.createStringResource("pageAdminFocus.projections"), authorization) {
            //
            //                            private static final long serialVersionUID = 1L;
            //
            //                            @Override
            //                            public WebMarkupContainer createPanel(String panelId) {
            //                                return createFocusProjectionsTabPanel(panelId, parentPage);
            //                            }
            //
            //                            @Override
            //                            public String getCount() {
            //                                return Integer.toString(getProjectionModel().getObject() == null ?
            //                                        0 : getProjectionModel().getObject().size());
            //                            }
            //                        });
            authorization = new FocusTabVisibleBehavior(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_ASSIGNMENTS_URL);
            tabs.add(new CountablePanelTab(parentPage.createStringResource("pageAdminFocus.assignments"), authorization) {

                private static final long serialVersionUID = 1L;

                @Override
                public WebMarkupContainer createPanel(String panelId) {
                    return createFocusAssignmentsTabPanel(panelId, parentPage);
                }

                @Override
                public String getCount() {
                    return Integer.toString(getAssignmentsModel().getObject() == null ? 0 : getAssignmentsModel().getObject().size());
                }
            });
            authorization = new FocusTabVisibleBehavior(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_DELEGATED_TO_ME_URL);
            tabs.add(new CountablePanelTab(parentPage.createStringResource("FocusType.delegatedToMe"), authorization) {

                private static final long serialVersionUID = 1L;

                @Override
                public WebMarkupContainer createPanel(String panelId) {
                    return new AssignmentTablePanel<UserType>(panelId, parentPage.createStringResource("FocusType.delegatedToMe"), getDelegatedToMeModel()) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void populateAssignmentDetailsPanel(ListItem<AssignmentEditorDto> item) {
                            DelegationEditorPanel editor = new DelegationEditorPanel(ID_ROW, item.getModel(), true, new ArrayList<AssignmentsPreviewDto>(), PageUserHistory.this);
                            item.add(editor);
                        }

                        @Override
                        public String getExcludeOid() {
                            return getObject().getOid();
                        }

                        @Override
                        protected List<InlineMenuItem> createAssignmentMenu() {
                            return new ArrayList<>();
                        }
                    };
                }

                @Override
                public String getCount() {
                    return Integer.toString(getDelegatedToMeModel().getObject() == null ? 0 : getDelegatedToMeModel().getObject().size());
                }
            });
            return tabs;
        }

        @Override
        protected boolean getOptionsPanelVisibility() {
            return false;
        }
    };
}
Also used : PanelTab(com.evolveum.midpoint.gui.api.component.tabs.PanelTab) CountablePanelTab(com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab) DelegationEditorPanel(com.evolveum.midpoint.web.component.assignment.DelegationEditorPanel) AssignmentEditorDto(com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto) ArrayList(java.util.ArrayList) CountablePanelTab(com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab) PageAdminObjectDetails(com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) FocusMainPanel(com.evolveum.midpoint.web.component.objectdetails.FocusMainPanel) FocusTabVisibleBehavior(com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior) ArrayList(java.util.ArrayList) List(java.util.List) UserType(com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)

Example 7 with ITab

use of org.apache.wicket.extensions.markup.html.tabs.ITab in project midpoint by Evolveum.

the class StageEditorPanel method nameClickPerformed.

private void nameClickPerformed(AjaxRequestTarget target) {
    TabbedPanel tabbedPanel = this.findParent(TabbedPanel.class);
    IModel<List<ITab>> tabsModel = tabbedPanel.getTabs();
    List<ITab> tabsList = tabsModel.getObject();
    PropertyModel<String> tabNameModel;
    if (getModel().getObject().getName() == null || getModel().getObject().getName().trim().equals("")) {
        tabNameModel = new PropertyModel<>(getModel(), StageDefinitionDto.F_NUMBER);
    } else {
        tabNameModel = new PropertyModel<>(getModel(), StageDefinitionDto.F_NAME);
    }
    for (ITab tab : tabsList) {
        if (tab.getTitle().getObject().equals(tabNameModel.getObject())) {
            int i = tabsList.indexOf(tab);
            tabbedPanel.setSelectedTab(i);
            target.add(tabbedPanel);
            return;
        }
    }
    tabsList.add(new AbstractTab(tabNameModel) {

        @Override
        public WebMarkupContainer getPanel(String panelId) {
            return new DefinitionStagePanel(panelId, getModel(), getPageBase());
        }
    });
    tabbedPanel.setSelectedTab(tabsList.size() - 1);
    target.add(tabbedPanel);
}
Also used : TabbedPanel(com.evolveum.midpoint.web.component.TabbedPanel) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) AbstractTab(org.apache.wicket.extensions.markup.html.tabs.AbstractTab) List(java.util.List)

Example 8 with ITab

use of org.apache.wicket.extensions.markup.html.tabs.ITab in project midpoint by Evolveum.

the class DefinitionStagesPanel method initLayout.

private void initLayout() {
    List<ITab> tabs = new ArrayList<>();
    createTabs(tabs);
    tabPanel = WebComponentUtil.createTabPanel(ID_TAB_PANEL, parentPage, tabs, null);
    add(tabPanel);
    AjaxSubmitButton addNewStage = new AjaxSubmitButton(ID_ADD_NEW_STAGE, createStringResource("StageDefinitionPanel.addNewStageButton")) {

        @Override
        public void onSubmit(AjaxRequestTarget target, Form form) {
            super.onSubmit(target, form);
            addPerformed(target);
        }
    };
    add(addNewStage);
    // use the same isVisible for all buttons to avoid changing buttons' placement (especially dangerous is "delete stage" one)
    // we also don't use isEnabled as it seems to have no visual effect
    VisibleEnableBehaviour visibleIfMoreTabs = new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return getModelObject().size() > 1;
        }
    };
    AjaxSubmitButton moveLeft = new AjaxSubmitButton(ID_MOVE_STAGE_LEFT, createStringResource("StageDefinitionPanel.moveStageLeftButton")) {

        @Override
        public void onSubmit(AjaxRequestTarget target, Form form) {
            super.onSubmit(target, form);
            moveLeftPerformed(target);
        }
    };
    moveLeft.add(visibleIfMoreTabs);
    add(moveLeft);
    AjaxSubmitButton moveRight = new AjaxSubmitButton(ID_MOVE_STAGE_RIGHT, createStringResource("StageDefinitionPanel.moveStageRightButton")) {

        @Override
        public void onSubmit(AjaxRequestTarget target, Form form) {
            super.onSubmit(target, form);
            moveRightPerformed(target);
        }
    };
    moveRight.add(visibleIfMoreTabs);
    add(moveRight);
    AjaxSubmitButton delete = new AjaxSubmitButton(ID_DELETE_STAGE, createStringResource("StageDefinitionPanel.deleteStageButton")) {

        @Override
        public void onSubmit(AjaxRequestTarget target, Form form) {
            super.onSubmit(target, form);
            deletePerformed(target);
        }
    };
    delete.add(visibleIfMoreTabs);
    add(delete);
    setOutputMarkupId(true);
}
Also used : AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) AjaxSubmitButton(com.evolveum.midpoint.web.component.AjaxSubmitButton) Form(org.apache.wicket.markup.html.form.Form) ArrayList(java.util.ArrayList) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab)

Example 9 with ITab

use of org.apache.wicket.extensions.markup.html.tabs.ITab in project midpoint by Evolveum.

the class AbstractOrgTabPanel method initLayout.

private void initLayout() {
    final IModel<List<ITab>> tabModel = new LoadableModel<List<ITab>>(false) {

        private static final long serialVersionUID = 1L;

        @Override
        protected List<ITab> load() {
            LOGGER.debug("Loading org. roots for tabs for tabbed panel.");
            roots = loadOrgRoots();
            final List<ITab> tabs = new ArrayList<>();
            for (PrismObject<OrgType> root : roots) {
                final String oid = root.getOid();
                tabs.add(new AbstractTab(createTabTitle(root)) {

                    private static final long serialVersionUID = 1L;

                    private int tabId = tabs.size();

                    @Override
                    public WebMarkupContainer getPanel(String panelId) {
                        add(new AjaxEventBehavior("load") {

                            private static final long serialVersionUID = 1L;

                            protected void onEvent(final AjaxRequestTarget target) {
                                SessionStorage storage = getPageBase().getSessionStorage();
                                storage.getUsers().setSelectedTabId(tabId);
                            }
                        });
                        Panel panel = createTreePanel(panelId, new Model(oid), getPageBase());
                        panel.setOutputMarkupId(true);
                        return panel;
                    }
                });
            }
            LOGGER.debug("Tab count is {}", new Object[] { tabs.size() });
            return tabs;
        }
    };
    final SessionStorage storage = getPageBase().getSessionStorage();
    int selectedTab = storage.getUsers().getSelectedTabId() == -1 ? 0 : storage.getUsers().getSelectedTabId();
    List<ITab> tabsList = tabModel.getObject();
    if (tabsList == null || (selectedTab > tabsList.size() - 1)) {
        storage.getUsers().setSelectedTabId(0);
        selectedTab = 0;
    }
    AjaxTabbedPanel<ITab> tabbedPanel = new AjaxTabbedPanel<ITab>(ID_TABS, tabModel.getObject(), new Model<>(selectedTab), null) {

        private static final long serialVersionUID = 1L;

        @Override
        public TabbedPanel<ITab> setSelectedTab(int index) {
            changeTabPerformed(index);
            return super.setSelectedTab(index);
        }
    };
    tabbedPanel.setOutputMarkupId(true);
    if (tabsList == null || tabsList.size() == 0) {
        tabbedPanel.setVisible(false);
    }
    add(tabbedPanel);
}
Also used : AjaxEventBehavior(org.apache.wicket.ajax.AjaxEventBehavior) ArrayList(java.util.ArrayList) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) AjaxTabbedPanel(com.evolveum.midpoint.web.component.AjaxTabbedPanel) Panel(org.apache.wicket.markup.html.panel.Panel) BasePanel(com.evolveum.midpoint.gui.api.component.BasePanel) TabbedPanel(com.evolveum.midpoint.web.component.TabbedPanel) AjaxTabbedPanel(com.evolveum.midpoint.web.component.AjaxTabbedPanel) OrgType(com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) IModel(org.apache.wicket.model.IModel) AbstractReadOnlyModel(org.apache.wicket.model.AbstractReadOnlyModel) Model(org.apache.wicket.model.Model) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) AbstractTab(org.apache.wicket.extensions.markup.html.tabs.AbstractTab) ArrayList(java.util.ArrayList) List(java.util.List) SessionStorage(com.evolveum.midpoint.web.session.SessionStorage)

Example 10 with ITab

use of org.apache.wicket.extensions.markup.html.tabs.ITab in project midpoint by Evolveum.

the class ConfigurationStep method updateConfigurationTabs.

private void updateConfigurationTabs() {
    final com.evolveum.midpoint.web.component.form.Form form = getForm();
    TabbedPanel<ITab> tabbedPanel = getConfigurationTabbedPanel();
    List<ITab> tabs = tabbedPanel.getTabs().getObject();
    tabs.clear();
    List<ContainerWrapper> wrappers = configurationPropertiesModel.getObject();
    for (final ContainerWrapper wrapper : wrappers) {
        String tabName = getString(wrapper.getDisplayName(), null, wrapper.getDisplayName());
        tabs.add(new AbstractTab(new Model<>(tabName)) {

            @Override
            public WebMarkupContainer getPanel(String panelId) {
                return new PrismContainerPanel(panelId, new Model<>(wrapper), true, form, parentPage);
            }
        });
    }
    int i = tabbedPanel.getSelectedTab();
    if (i < 0 || i > tabs.size()) {
        i = 0;
    }
    tabbedPanel.setSelectedTab(i);
}
Also used : ContainerWrapper(com.evolveum.midpoint.web.component.prism.ContainerWrapper) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) ListModel(org.apache.wicket.model.util.ListModel) Model(org.apache.wicket.model.Model) NonEmptyLoadableModel(com.evolveum.midpoint.gui.api.model.NonEmptyLoadableModel) AbstractTab(org.apache.wicket.extensions.markup.html.tabs.AbstractTab) PrismContainerPanel(com.evolveum.midpoint.web.component.prism.PrismContainerPanel)

Aggregations

ITab (org.apache.wicket.extensions.markup.html.tabs.ITab)17 WebMarkupContainer (org.apache.wicket.markup.html.WebMarkupContainer)14 ArrayList (java.util.ArrayList)12 AbstractTab (org.apache.wicket.extensions.markup.html.tabs.AbstractTab)8 PanelTab (com.evolveum.midpoint.gui.api.component.tabs.PanelTab)6 TabbedPanel (com.evolveum.midpoint.web.component.TabbedPanel)6 List (java.util.List)5 CountablePanelTab (com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab)4 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)4 FocusTabVisibleBehavior (com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior)3 VisibleEnableBehaviour (com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour)3 Form (org.apache.wicket.markup.html.form.Form)3 AjaxTabbedPanel (com.evolveum.midpoint.web.component.AjaxTabbedPanel)2 AssignmentEditorDto (com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto)2 FocusMainPanel (com.evolveum.midpoint.web.component.objectdetails.FocusMainPanel)2 PageAdminObjectDetails (com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails)2 IModel (org.apache.wicket.model.IModel)2 Model (org.apache.wicket.model.Model)2 PropertyModel (org.apache.wicket.model.PropertyModel)2 BasePanel (com.evolveum.midpoint.gui.api.component.BasePanel)1