Example usage for org.apache.wicket.markup.html.form SubmitLink add

List of usage examples for org.apache.wicket.markup.html.form SubmitLink add

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form SubmitLink add.

Prototype

public MarkupContainer add(final Component... children) 

Source Link

Document

Adds the child component(s) to this container.

Usage

From source file:org.projectforge.plugins.skillmatrix.SkillSelectPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public SkillSelectPanel init() {
    super.init();
    ancestorRepeater = new RepeatingView("ancestorSkills");
    divContainer.add(ancestorRepeater);//w  w w  .ja  v  a  2s. c  o m
    final SubmitLink skillLink = new SubmitLink("skillLink") {
        @Override
        public void onSubmit() {
            final SkillDO skill = getModelObject();
            if (skill == null) {
                return;
            }
            final PageParameters pageParams = new PageParameters();
            pageParams.add(AbstractEditPage.PARAMETER_KEY_ID, String.valueOf(skill.getId()));
            final SkillEditPage editPage = new SkillEditPage(pageParams);
            editPage.setReturnToPage((AbstractSecuredPage) getPage());
            setResponsePage(editPage);
        }
    };
    skillLink.setDefaultFormProcessing(false);
    divContainer.add(skillLink);
    // auto complete panels
    initAutoCompletePanels();

    WicketUtils.addTooltip(skillLink, getString(I18N_KEY_DISPLAY_SKILL_TOOLTIP));
    skillLink.add(new Label("name", new Model<String>() {
        /**
         * @see org.apache.wicket.model.Model#getObject()
         */
        @Override
        public String getObject() {
            final SkillDO skill = getModelObject();
            return skill != null ? skill.getTitle() : "";
        }
    }));

    final SubmitLink selectButton = new SubmitLink("select") {
        @Override
        public void onSubmit() {
            final SkillTreePage skillTreePage = new SkillTreePage(caller, selectProperty);
            if (getModelObject() != null) {
                skillTreePage.setHighlightedRowId(getModelObject().getId()); // Preselect node for highlighting.
            }
            setResponsePage(skillTreePage);
        };
    };
    selectButton.setDefaultFormProcessing(false);
    divContainer.add(selectButton);
    selectButton.add(new IconPanel("selectHelp", IconType.TASK, getString(I18N_KEY_SELECT_SKILL_TOOLTIP)));
    final SubmitLink unselectButton = new SubmitLink("unselect") {
        @Override
        public void onSubmit() {
            caller.unselect(selectProperty);
        }

        @Override
        public boolean isVisible() {
            return isRequired() == false && getModelObject() != null;
        }
    };
    unselectButton.setDefaultFormProcessing(false);
    divContainer.add(unselectButton);
    unselectButton
            .add(new IconPanel("unselectHelp", IconType.REMOVE_SIGN, getString(I18N_KEY_UNSELECT_SKILL_TOOLTIP))
                    .setColor(CSSColor.RED));

    return this;
}

From source file:org.projectforge.web.calendar.QuickSelectMonthPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public QuickSelectMonthPanel init() {
    super.init();
    {/*from  ww  w.j  a v a  2 s .  c om*/
        final SubmitLink previousButton = new SubmitLink("previousMonth") {
            @Override
            public void onSubmit() {
                final DateHolder dateHolder = new DateHolder(getModelObject());
                dateHolder.add(Calendar.MONTH, -1);
                dateHolder.setBeginOfMonth();
                beginOfMonth = dateHolder.getDate();
                caller.select(selectProperty, beginOfMonth);
            };
        };
        previousButton.setDefaultFormProcessing(false);
        add(previousButton);
        previousButton.add(new TooltipImage("previousMonthImage", WebConstants.IMAGE_QUICKSELECT_PREVIOUS_MONTH,
                getString("calendar.quickselect.tooltip.selectPreviousMonth")));
    }
    {
        final SubmitLink currentMonthButton = new SubmitLink("currentMonth") {
            @Override
            public void onSubmit() {
                final DateHolder dateHolder = new DateHolder();
                dateHolder.setBeginOfMonth();
                beginOfMonth = dateHolder.getDate();
                caller.select(selectProperty, beginOfMonth);
            };
        };
        currentMonthButton.setDefaultFormProcessing(false);
        add(currentMonthButton);
        currentMonthButton
                .add(new TooltipImage("currentMonthImage", WebConstants.IMAGE_QUICKSELECT_CURRENT_MONTH,
                        getString("calendar.quickselect.tooltip.selectCurrentMonth")));
    }
    {
        final SubmitLink followingMonthButton = new SubmitLink("followingMonth") {
            @Override
            public void onSubmit() {
                final DateHolder dateHolder = new DateHolder(getModelObject());
                dateHolder.add(Calendar.MONTH, +1);
                beginOfMonth = dateHolder.getDate();
                caller.select(selectProperty, beginOfMonth);
            };
        };
        followingMonthButton.setDefaultFormProcessing(false);
        add(followingMonthButton);
        followingMonthButton
                .add(new TooltipImage("followingMonthImage", WebConstants.IMAGE_QUICKSELECT_FOLLOWING_MONTH,
                        getString("calendar.quickselect.tooltip.selectNextMonth")));
    }
    return this;
}

From source file:org.projectforge.web.calendar.QuickSelectWeekPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public QuickSelectWeekPanel init() {
    super.init();
    {//w  ww .jav a2 s  .  com
        final SubmitLink previousButton = new SubmitLink("previousWeek") {
            @Override
            public void onSubmit() {
                final DateHolder dateHolder = new DateHolder(getModelObject());
                dateHolder.add(Calendar.WEEK_OF_YEAR, -1);
                dateHolder.setBeginOfWeek();
                beginOfWeek = dateHolder.getDate();
                caller.select(selectProperty, beginOfWeek);
            };
        };
        previousButton.setDefaultFormProcessing(false);
        add(previousButton);
        previousButton.add(new TooltipImage("previousWeekImage", WebConstants.IMAGE_QUICKSELECT_PREVIOUS_WEEK,
                getString("calendar.quickselect.tooltip.selectPreviousWeek")));
    }
    {
        final SubmitLink currentWeekButton = new SubmitLink("currentWeek") {
            @Override
            public void onSubmit() {
                final DateHolder dateHolder = new DateHolder();
                dateHolder.setBeginOfWeek();
                beginOfWeek = dateHolder.getDate();
                caller.select(selectProperty, beginOfWeek);
            };
        };
        currentWeekButton.setDefaultFormProcessing(false);
        add(currentWeekButton);
        currentWeekButton.add(new TooltipImage("currentWeekImage", WebConstants.IMAGE_QUICKSELECT_CURRENT_WEEK,
                getString("calendar.quickselect.tooltip.selectCurrentWeek")));
    }
    {
        final SubmitLink followingWeekButton = new SubmitLink("followingWeek") {
            @Override
            public void onSubmit() {
                final DateHolder dateHolder = new DateHolder(getModelObject());
                dateHolder.add(Calendar.WEEK_OF_YEAR, +1);
                beginOfWeek = dateHolder.getDate();
                caller.select(selectProperty, beginOfWeek);
            };
        };
        followingWeekButton.setDefaultFormProcessing(false);
        add(followingWeekButton);
        followingWeekButton
                .add(new TooltipImage("followingWeekImage", WebConstants.IMAGE_QUICKSELECT_FOLLOWING_WEEK,
                        getString("calendar.quickselect.tooltip.selectNextWeek")));
    }
    return this;
}

From source file:org.projectforge.web.core.importstorage.AbstractImportStoragePanel.java

License:Open Source License

@SuppressWarnings("serial")
protected void addSheet(final ImportedSheet<?> sheet) {
    final WebMarkupContainer cont = new WebMarkupContainer(sheetRepeatingView.newChildId());
    sheetRepeatingView.add(cont);// ww w  .  j  a va  2s  .  co m
    StringBuffer buf = new StringBuffer();
    buf.append("Sheet: ").append(sheet.getName()).append(" ");
    if (sheet.isReconciled() == true) {
        buf.append(getString(sheet.getStatus().getI18nKey())).append(" ");
        if (sheet.getNumberOfCommittedElements() >= 0) {
            buf.append(": #").append(sheet.getNumberOfCommittedElements());
        }
    } else {
        buf.append(getString(ImportStatus.NOT_RECONCILED.getI18nKey()));
    }
    cont.add(new Label("sheetName", buf.toString()));
    final SubmitLink toggleLink = new SubmitLink("toggle") {
        @Override
        public void onSubmit() {
            sheet.setOpen(!sheet.isOpen()); // Toggle open status.
        }
    };
    cont.add(toggleLink);
    toggleLink.add(new IconPanel("zoomInImage", IconType.ZOOM_IN) {
        @Override
        public boolean isVisible() {
            return !sheet.isOpen();
        }
    });
    toggleLink.add(new IconPanel("zoomOutImage", IconType.ZOOM_OUT) {
        @Override
        public boolean isVisible() {
            return sheet.isOpen();
        }
    });
    buf = new StringBuffer();
    buf.append("Total=").append(sheet.getTotalNumberOfElements()).append(" ");
    if (sheet.getNumberOfNewElements() > 0) {
        buf.append(" | New=<span style=\"color: red;\">").append(sheet.getNumberOfNewElements())
                .append("</span>");
    }
    if (sheet.getNumberOfModifiedElements() > 0) {
        buf.append(" | Modified=<span style=\"color: red;\">").append(sheet.getNumberOfModifiedElements())
                .append("</span>");
    }
    if (sheet.getNumberOfUnmodifiedElements() > 0) {
        buf.append(" | Unmodified=").append(sheet.getNumberOfUnmodifiedElements());
    }
    if (sheet.getNumberOfFaultyElements() > 0) {
        buf.append(" | Errors=<span style=\"color: red; font-weight: bold;\">")
                .append(sheet.getNumberOfFaultyElements()).append("</span>");
    }
    cont.add(new PlainLabel("statistics", buf.toString()).setEscapeModelStrings(false));
    final RepeatingView actionLinkRepeater = new RepeatingView("actionLinkRepeater");
    cont.add(actionLinkRepeater);
    if (sheet.isReconciled() == false || sheet.getStatus().isIn(ImportStatus.IMPORTED,
            ImportStatus.NOTHING_TODO, ImportStatus.HAS_ERRORS) == true) {
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.reconcile(sheet.getName());
            }
        }, getString("common.import.action.reconcile"), getString("common.import.action.reconcile.tooltip"));
    } else if (sheet.isReconciled() == true) {
        addActionLink(actionLinkRepeater, new AjaxSubmitLink("actionLink", parentPage.form) {
            /**
             * @see org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink#onSubmit(org.apache.wicket.ajax.AjaxRequestTarget,
             *      org.apache.wicket.markup.html.form.Form)
             */
            @Override
            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
                commitDialog.sheetName = sheet.getName();
                commitDialog.open(target);
            }
        }, getString("common.import.action.commit"), getString("common.import.action.commit.tooltip"));
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.selectAll(sheet.getName());
            }
        }, getString("common.import.action.selectAll"));
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.select(sheet.getName(), 100);
            }
        }, getString("common.import.action.select100"));
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.select(sheet.getName(), 500);
            }
        }, getString("common.import.action.select500"));
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.deselectAll(sheet.getName());
            }
        }, getString("common.import.action.deselectAll"));
    }
    if (sheet.isFaulty() == true) {
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.showErrorSummary(sheet.getName());
            }
        }, getString("common.import.action.showErrorSummary"));
    }
    appendSheetActionLinks(sheet, actionLinkRepeater);
    addSheetTable(sheet, cont);
}

From source file:org.projectforge.web.fibu.CustomerSelectPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public CustomerSelectPanel init() {
    super.init();
    if (kundeText != null) {
        kundeTextField = new MaxLengthTextField("kundeText", kundeText) {
            @Override/*  w w w  .  j a va  2s. c  o m*/
            public boolean isVisible() {
                return (CustomerSelectPanel.this.getModelObject() == null || NumberHelper
                        .greaterZero(CustomerSelectPanel.this.getModelObject().getId()) == false);
            }
        };
        add(kundeTextField);
    } else {
        add(AbstractForm.createInvisibleDummyComponent("kundeText"));
    }
    final Label kundeAsStringLabel = new Label("kundeAsString", new Model<String>() {

        @Override
        public String getObject() {
            final KundeDO kunde = getModelObject();
            return kundeFormatter.format(kunde, false);
        }
    });
    add(kundeAsStringLabel);
    final SubmitLink selectButton = new SubmitLink("select") {
        @Override
        public void onSubmit() {
            setResponsePage(new CustomerListPage(caller, selectProperty));
        };
    };
    selectButton.setDefaultFormProcessing(false);
    add(selectButton);
    selectButton.add(new TooltipImage("selectHelp", WebConstants.IMAGE_KUNDE_SELECT,
            getString("fibu.tooltip.selectKunde")));
    final SubmitLink unselectButton = new SubmitLink("unselect") {
        @Override
        public void onSubmit() {
            caller.unselect(selectProperty);
        }

        @Override
        public boolean isVisible() {
            return CustomerSelectPanel.this.getModelObject() != null;
        }
    };
    unselectButton.setDefaultFormProcessing(false);
    add(unselectButton);
    unselectButton.add(new TooltipImage("unselectHelp", WebConstants.IMAGE_KUNDE_UNSELECT,
            getString("fibu.tooltip.unselectKunde")));
    // DropDownChoice favorites
    favoritesPanel = new FavoritesChoicePanel<KundeDO, KundeFavorite>("favorites", UserPrefArea.KUNDE_FAVORITE,
            tabIndex, "half select") {
        @Override
        protected void select(final KundeFavorite favorite) {
            if (favorite.getKunde() != null) {
                CustomerSelectPanel.this.selectKunde(favorite.getKunde());
            }
        }

        @Override
        protected KundeDO getCurrentObject() {
            return CustomerSelectPanel.this.getModelObject();
        }

        @Override
        protected KundeFavorite newFavoriteInstance(final KundeDO currentObject) {
            final KundeFavorite favorite = new KundeFavorite();
            favorite.setKunde(currentObject);
            return favorite;
        }
    };
    add(favoritesPanel);
    favoritesPanel.init();
    if (showFavorites == false) {
        favoritesPanel.setVisible(false);
    }
    return this;
}

From source file:org.projectforge.web.fibu.DatevImportStoragePanel.java

License:Open Source License

@SuppressWarnings("serial")
protected void addSheet(final ImportedSheet<?> sheet) {
    final WebMarkupContainer cont = new WebMarkupContainer(sheetRepeatingView.newChildId());
    sheetRepeatingView.add(cont);/*w ww  .  j  a v a  2s . com*/
    StringBuffer buf = new StringBuffer();
    buf.append("Sheet: ").append(sheet.getName()).append(" ");
    if (sheet.isReconciled() == true) {
        buf.append(getString(sheet.getStatus().getI18nKey())).append(" ");
        if (sheet.getNumberOfCommittedElements() >= 0) {
            buf.append(": #").append(sheet.getNumberOfCommittedElements());
        }
    } else {
        buf.append(getString(ImportStatus.NOT_RECONCILED.getI18nKey()));
    }
    cont.add(new Label("sheetName", buf.toString()));
    final SubmitLink toggleLink = new SubmitLink("toggle") {
        @Override
        public void onSubmit() {
            sheet.setOpen(!sheet.isOpen()); // Toggle open status.
        }
    };
    cont.add(toggleLink);
    toggleLink.add(new IconPanel("zoomInImage", IconType.ZOOM_IN) {
        @Override
        public boolean isVisible() {
            return !sheet.isOpen();
        }
    });
    toggleLink.add(new IconPanel("zoomOutImage", IconType.ZOOM_OUT) {
        @Override
        public boolean isVisible() {
            return sheet.isOpen();
        }
    });
    buf = new StringBuffer();
    buf.append("Total=").append(sheet.getTotalNumberOfElements()).append(" ");
    if (sheet.getNumberOfNewElements() > 0) {
        buf.append(" | New=<span style=\"color: red;\">").append(sheet.getNumberOfNewElements())
                .append("</span>");
    }
    if (sheet.getNumberOfModifiedElements() > 0) {
        buf.append(" | Modified=<span style=\"color: red;\">").append(sheet.getNumberOfModifiedElements())
                .append("</span>");
    }
    if (sheet.getNumberOfUnmodifiedElements() > 0) {
        buf.append(" | Unmodified=").append(sheet.getNumberOfUnmodifiedElements());
    }
    if (sheet.getNumberOfFaultyElements() > 0) {
        buf.append(" | Errors=<span style=\"color: red; font-weight: bold;\">")
                .append(sheet.getNumberOfFaultyElements()).append("</span>");
    }
    cont.add(new PlainLabel("statistics", buf.toString()).setEscapeModelStrings(false));
    final RepeatingView actionLinkRepeater = new RepeatingView("actionLinkRepeater");
    cont.add(actionLinkRepeater);
    if (sheet.isReconciled() == false || sheet.getStatus().isIn(ImportStatus.IMPORTED,
            ImportStatus.NOTHING_TODO, ImportStatus.HAS_ERRORS) == true) {
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.reconcile(sheet.getName());
            }
        }, "reconcile");
    } else if (sheet.isReconciled() == true) {
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.commit(sheet.getName());
            }
        }, "commit");
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.selectAll(sheet.getName());
            }
        }, "select all");
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.select(sheet.getName(), 100);
            }
        }, "select 100");
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.select(sheet.getName(), 500);
            }
        }, "select 500");
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.deselectAll(sheet.getName());
            }
        }, "deselect all");
    }
    if (sheet.isFaulty() == true) {
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.showErrorSummary(sheet.getName());
            }
        }, "show error summary");
    }
    if (getStorageType() == DatevImportDao.Type.BUCHUNGSSAETZE) {
        addActionLink(actionLinkRepeater, new SubmitLink("actionLink") {
            @Override
            public void onSubmit() {
                parentPage.showBusinessAssessment(sheet.getName());
            }
        }, "show business assessment");
    }
    addSheetTable(sheet, cont);
}

From source file:org.projectforge.web.fibu.DatevImportStoragePanel.java

License:Open Source License

private void addActionLink(final RepeatingView actionLinkRepeater, final SubmitLink link, final String label) {
    final WebMarkupContainer actionLinkContainer = new WebMarkupContainer(actionLinkRepeater.newChildId());
    actionLinkRepeater.add(actionLinkContainer);
    actionLinkContainer.add(link.add(new PlainLabel("label", label)));
}

From source file:org.projectforge.web.fibu.Kost2SelectPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public Kost2SelectPanel init() {
    super.init();
    final Label kost2AsStringLabel = new Label("kost2AsString", new Model<String>() {

        @Override/*w  w  w .  j  a va2 s .c  om*/
        public String getObject() {
            final Kost2DO kost2 = getModelObject();
            if (kost2 == null) {
                return "";
            }
            return kost2.getFormattedNumber();
        }
    });
    add(kost2AsStringLabel);
    final SubmitLink selectButton = new SubmitLink("select") {
        @Override
        public void onSubmit() {
            final PageParameters parameters = new PageParameters();
            beforeSelectPage(parameters);
            final Kost2ListPage page = new Kost2ListPage(parameters, caller, selectProperty);
            setResponsePage(page);
        };
    };
    selectButton.setDefaultFormProcessing(false);
    add(selectButton);
    final boolean hasSelectAccess = kost2Dao.hasLoggedInUserSelectAccess(false);
    if (hasSelectAccess == false) {
        selectButton.setVisible(false);
    }
    selectButton.add(new TooltipImage("selectHelp", WebConstants.IMAGE_KOST2_SELECT,
            getString("fibu.tooltip.selectKost2")));
    final SubmitLink unselectButton = new SubmitLink("unselect") {
        @Override
        public void onSubmit() {
            caller.unselect(selectProperty);
        }

        @Override
        public boolean isVisible() {
            return hasSelectAccess == true && isRequired() == false && getModelObject() != null;
        }
    };
    unselectButton.setDefaultFormProcessing(false);
    add(unselectButton);
    unselectButton.add(new TooltipImage("unselectHelp", WebConstants.IMAGE_KOST2_UNSELECT,
            getString("fibu.tooltip.unselectKost2")));
    return this;
}

From source file:org.projectforge.web.fibu.NewProjektSelectPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public NewProjektSelectPanel init() {
    super.init();
    add(projectTextField);//  w  w  w  . j a v  a2 s.  c o m
    final SubmitLink selectButton = new SubmitLink("select") {
        @Override
        public void onSubmit() {
            setResponsePage(new ProjektListPage(caller, selectProperty));
        };
    };

    selectButton.setDefaultFormProcessing(false);
    add(selectButton);
    final boolean hasSelectAccess = projektDao.hasLoggedInUserSelectAccess(false);
    if (hasSelectAccess == false) {
        selectButton.setVisible(false);
    }
    selectButton.add(new TooltipImage("selectHelp", WebConstants.IMAGE_PROJEKT_SELECT,
            getString("fibu.tooltip.selectProjekt")));
    final SubmitLink unselectButton = new SubmitLink("unselect") {
        @Override
        public void onSubmit() {
            caller.unselect(selectProperty);
        }

        @Override
        public boolean isVisible() {
            return hasSelectAccess == true && isRequired() == false
                    && NewProjektSelectPanel.this.getModelObject() != null;
        }
    };

    unselectButton.setDefaultFormProcessing(false);
    add(unselectButton);
    unselectButton.add(new TooltipImage("unselectHelp", WebConstants.IMAGE_PROJEKT_UNSELECT,
            getString("fibu.tooltip.unselectProjekt")));
    // DropDownChoice favorites
    final FavoritesChoicePanel<ProjektDO, ProjektFavorite> favoritesPanel = new FavoritesChoicePanel<ProjektDO, ProjektFavorite>(
            "favorites", UserPrefArea.PROJEKT_FAVORITE, tabIndex, "select half") {
        @Override
        protected void select(final ProjektFavorite favorite) {
            if (favorite.getProjekt() != null) {
                NewProjektSelectPanel.this.selectProjekt(favorite.getProjekt());
            }
        }

        @Override
        protected ProjektDO getCurrentObject() {
            return NewProjektSelectPanel.this.getModelObject();
        }

        @Override
        protected ProjektFavorite newFavoriteInstance(final ProjektDO currentObject) {
            final ProjektFavorite favorite = new ProjektFavorite();
            favorite.setProjekt(currentObject);
            return favorite;
        }
    };
    add(favoritesPanel);
    favoritesPanel.init();
    if (showFavorites == false) {
        favoritesPanel.setVisible(false);
    }
    return this;
}

From source file:org.projectforge.web.fibu.ProjektSelectPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public ProjektSelectPanel init() {
    super.init();
    final SubmitLink selectButton = new SubmitLink("select") {
        @Override/*from ww  w .  j a  v  a  2  s  .c o  m*/
        public void onSubmit() {
            setResponsePage(new ProjektListPage(caller, selectProperty));
        };
    };
    selectButton.setDefaultFormProcessing(false);
    add(selectButton);
    final boolean hasSelectAccess = projektDao.hasLoggedInUserSelectAccess(false);
    if (hasSelectAccess == false) {
        selectButton.setVisible(false);
    }
    selectButton.add(new TooltipImage("selectHelp", WebConstants.IMAGE_PROJEKT_SELECT,
            getString("fibu.tooltip.selectProjekt")));
    final SubmitLink unselectButton = new SubmitLink("unselect") {
        @Override
        public void onSubmit() {
            caller.unselect(selectProperty);
        }

        @Override
        public boolean isVisible() {
            return hasSelectAccess == true && isRequired() == false
                    && ProjektSelectPanel.this.getModelObject() != null;
        }
    };
    unselectButton.setDefaultFormProcessing(false);
    add(unselectButton);
    unselectButton.add(new TooltipImage("unselectHelp", WebConstants.IMAGE_PROJEKT_UNSELECT,
            getString("fibu.tooltip.unselectProjekt")));
    // DropDownChoice favorites
    final FavoritesChoicePanel<ProjektDO, ProjektFavorite> favoritesPanel = new FavoritesChoicePanel<ProjektDO, ProjektFavorite>(
            "favorites", UserPrefArea.PROJEKT_FAVORITE, tabIndex, "select half") {
        @Override
        protected void select(final ProjektFavorite favorite) {
            if (favorite.getProjekt() != null) {
                ProjektSelectPanel.this.selectProjekt(favorite.getProjekt());
            }
        }

        @Override
        protected ProjektDO getCurrentObject() {
            return ProjektSelectPanel.this.getModelObject();
        }

        @Override
        protected ProjektFavorite newFavoriteInstance(final ProjektDO currentObject) {
            final ProjektFavorite favorite = new ProjektFavorite();
            favorite.setProjekt(currentObject);
            return favorite;
        }
    };
    add(favoritesPanel);
    favoritesPanel.init();
    if (showFavorites == false) {
        favoritesPanel.setVisible(false);
    }
    return this;
}