Example usage for org.apache.wicket.markup.html.link Link Link

List of usage examples for org.apache.wicket.markup.html.link Link Link

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.link Link Link.

Prototype

public Link(final String id) 

Source Link

Usage

From source file:com.gitblit.wicket.panels.RepositoriesPanel.java

License:Apache License

public RepositoriesPanel(String wicketId, final boolean showAdmin, final boolean showManagement,
        List<RepositoryModel> models, boolean enableLinks,
        final Map<AccessRestrictionType, String> accessRestrictionTranslations) {
    super(wicketId);

    final boolean linksActive = enableLinks;
    final boolean showSize = app().settings().getBoolean(Keys.web.showRepositorySizes, true);

    final UserModel user = GitBlitWebSession.get().getUser();

    final IDataProvider<RepositoryModel> dp;

    Fragment managementLinks;//w  w  w .j  a  va  2  s  . c o  m
    if (showAdmin) {
        // user is admin
        managementLinks = new Fragment("managementPanel", "adminLinks", RepositoriesPanel.this);
        managementLinks.add(new Link<Void>("clearCache") {

            private static final long serialVersionUID = 1L;

            @Override
            public void onClick() {
                app().repositories().resetRepositoryListCache();
                setResponsePage(RepositoriesPage.class);
            }
        }.setVisible(app().settings().getBoolean(Keys.git.cacheRepositoryList, true)));
        managementLinks.add(new BookmarkablePageLink<Void>("newRepository", app().getNewRepositoryPage()));
        add(managementLinks);
    } else if (showManagement && user != null && user.canCreate()) {
        // user can create personal repositories
        managementLinks = new Fragment("managementPanel", "personalLinks", RepositoriesPanel.this);
        managementLinks.add(new BookmarkablePageLink<Void>("newRepository", app().getNewRepositoryPage()));
        add(managementLinks);
    } else {
        // user has no management permissions
        add(new Label("managementPanel").setVisible(false));
    }

    if (app().settings().getString(Keys.web.repositoryListType, "flat").equalsIgnoreCase("grouped")) {
        List<RepositoryModel> rootRepositories = new ArrayList<RepositoryModel>();
        Map<String, List<RepositoryModel>> groups = new HashMap<String, List<RepositoryModel>>();
        for (RepositoryModel model : models) {
            String rootPath = StringUtils.getRootPath(model.name);
            if (StringUtils.isEmpty(rootPath)) {
                // root repository
                rootRepositories.add(model);
            } else {
                // non-root, grouped repository
                if (!groups.containsKey(rootPath)) {
                    groups.put(rootPath, new ArrayList<RepositoryModel>());
                }
                groups.get(rootPath).add(model);
            }
        }
        List<String> roots = new ArrayList<String>(groups.keySet());
        Collections.sort(roots);

        if (rootRepositories.size() > 0) {
            // inject the root repositories at the top of the page
            roots.add(0, "");
            groups.put("", rootRepositories);
        }

        List<RepositoryModel> groupedModels = new ArrayList<RepositoryModel>();
        for (String root : roots) {
            List<RepositoryModel> subModels = groups.get(root);
            ProjectModel project = app().projects().getProjectModel(root);
            GroupRepositoryModel group = new GroupRepositoryModel(project == null ? root : project.name,
                    subModels.size());
            if (project != null) {
                group.title = project.title;
                group.description = project.description;
            }
            groupedModels.add(group);
            Collections.sort(subModels);
            groupedModels.addAll(subModels);
        }
        dp = new ListDataProvider<RepositoryModel>(groupedModels);
    } else {
        dp = new SortableRepositoriesProvider(models);
    }

    final boolean showSwatch = app().settings().getBoolean(Keys.web.repositoryListSwatches, true);

    DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("row", dp) {
        private static final long serialVersionUID = 1L;
        int counter;
        String currGroupName;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<RepositoryModel> item) {
            final RepositoryModel entry = item.getModelObject();
            if (entry instanceof GroupRepositoryModel) {
                GroupRepositoryModel groupRow = (GroupRepositoryModel) entry;
                currGroupName = entry.name;
                Fragment row = new Fragment("rowContent", "groupRepositoryRow", RepositoriesPanel.this);
                item.add(row);

                String name = groupRow.name;
                if (name.startsWith(ModelUtils.getUserRepoPrefix())) {
                    // user page
                    String username = ModelUtils.getUserNameFromRepoPath(name);
                    UserModel user = app().users().getUserModel(username);
                    row.add(new LinkPanel("groupName", null,
                            (user == null ? username : user.getDisplayName()) + " (" + groupRow.count + ")",
                            UserPage.class, WicketUtils.newUsernameParameter(username)));
                    row.add(new Label("groupDescription", getString("gb.personalRepositories")));
                } else {
                    // project page
                    row.add(new LinkPanel("groupName", null, groupRow.toString(), ProjectPage.class,
                            WicketUtils.newProjectParameter(entry.name)));
                    row.add(new Label("groupDescription", entry.description == null ? "" : entry.description));
                }
                WicketUtils.setCssClass(item, "group");
                // reset counter so that first row is light background
                counter = 0;
                return;
            }
            Fragment row = new Fragment("rowContent", "repositoryRow", RepositoriesPanel.this);
            item.add(row);

            // show colored repository type icon
            Fragment iconFragment;
            if (entry.isMirror) {
                iconFragment = new Fragment("repoIcon", "mirrorIconFragment", RepositoriesPanel.this);
            } else if (entry.isFork()) {
                iconFragment = new Fragment("repoIcon", "forkIconFragment", RepositoriesPanel.this);
            } else if (entry.isBare) {
                iconFragment = new Fragment("repoIcon", "repoIconFragment", RepositoriesPanel.this);
            } else {
                iconFragment = new Fragment("repoIcon", "cloneIconFragment", RepositoriesPanel.this);
            }
            if (showSwatch) {
                WicketUtils.setCssStyle(iconFragment, "color:" + StringUtils.getColor(entry.toString()));
            }
            row.add(iconFragment);

            // try to strip group name for less cluttered list
            String repoName = entry.toString();
            if (!StringUtils.isEmpty(currGroupName) && (repoName.indexOf('/') > -1)) {
                repoName = repoName.substring(currGroupName.length() + 1);
            }

            if (linksActive) {
                Class<? extends BasePage> linkPage = SummaryPage.class;
                PageParameters pp = WicketUtils.newRepositoryParameter(entry.name);
                row.add(new LinkPanel("repositoryName", "list", repoName, linkPage, pp));
                row.add(new LinkPanel("repositoryDescription", "list", entry.description, linkPage, pp));
            } else {
                // no links like on a federation page
                row.add(new Label("repositoryName", repoName));
                row.add(new Label("repositoryDescription", entry.description));
            }
            if (entry.hasCommits) {
                // Existing repository
                row.add(new Label("repositorySize", entry.size).setVisible(showSize));
            } else {
                // New repository
                row.add(new Label("repositorySize",
                        "<span class='empty'>(" + getString("gb.empty") + ")</span>")
                                .setEscapeModelStrings(false));
            }

            if (entry.isSparkleshared()) {
                row.add(WicketUtils.newImage("sparkleshareIcon", "star_16x16.png",
                        getString("gb.isSparkleshared")));
            } else {
                row.add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false));
            }

            if (!entry.isMirror && entry.isFrozen) {
                row.add(WicketUtils.newImage("frozenIcon", "cold_16x16.png", getString("gb.isFrozen")));
            } else {
                row.add(WicketUtils.newClearPixel("frozenIcon").setVisible(false));
            }

            if (entry.isFederated) {
                row.add(WicketUtils.newImage("federatedIcon", "federated_16x16.png",
                        getString("gb.isFederated")));
            } else {
                row.add(WicketUtils.newClearPixel("federatedIcon").setVisible(false));
            }

            if (entry.isMirror) {
                row.add(WicketUtils.newImage("accessRestrictionIcon", "mirror_16x16.png",
                        getString("gb.isMirror")));
            } else {
                switch (entry.accessRestriction) {
                case NONE:
                    row.add(WicketUtils.newBlankImage("accessRestrictionIcon"));
                    break;
                case PUSH:
                    row.add(WicketUtils.newImage("accessRestrictionIcon", "lock_go_16x16.png",
                            accessRestrictionTranslations.get(entry.accessRestriction)));
                    break;
                case CLONE:
                    row.add(WicketUtils.newImage("accessRestrictionIcon", "lock_pull_16x16.png",
                            accessRestrictionTranslations.get(entry.accessRestriction)));
                    break;
                case VIEW:
                    row.add(WicketUtils.newImage("accessRestrictionIcon", "shield_16x16.png",
                            accessRestrictionTranslations.get(entry.accessRestriction)));
                    break;
                default:
                    row.add(WicketUtils.newBlankImage("accessRestrictionIcon"));
                }
            }

            String owner = "";
            if (!ArrayUtils.isEmpty(entry.owners)) {
                // display first owner
                for (String username : entry.owners) {
                    UserModel ownerModel = app().users().getUserModel(username);
                    if (ownerModel != null) {
                        owner = ownerModel.getDisplayName();
                        break;
                    }
                }
                if (entry.owners.size() > 1) {
                    owner += ", ...";
                }
            }
            Label ownerLabel = new Label("repositoryOwner", owner);
            WicketUtils.setHtmlTooltip(ownerLabel, ArrayUtils.toString(entry.owners));
            row.add(ownerLabel);

            String lastChange;
            if (entry.lastChange.getTime() == 0) {
                lastChange = "--";
            } else {
                lastChange = getTimeUtils().timeAgo(entry.lastChange);
            }
            Label lastChangeLabel = new Label("repositoryLastChange", lastChange);
            row.add(lastChangeLabel);
            WicketUtils.setCssClass(lastChangeLabel, getTimeUtils().timeAgoCss(entry.lastChange));
            if (!StringUtils.isEmpty(entry.lastChangeAuthor)) {
                WicketUtils.setHtmlTooltip(lastChangeLabel,
                        getString("gb.author") + ": " + entry.lastChangeAuthor);
            }

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(dataView);

    if (dp instanceof SortableDataProvider<?, ?>) {
        // add sortable header
        SortableDataProvider<?, ?> sdp = (SortableDataProvider<?, ?>) dp;
        Fragment fragment = new Fragment("headerContent", "flatRepositoryHeader", RepositoriesPanel.this);
        fragment.add(newSort("orderByRepository", SortBy.repository, sdp, dataView));
        fragment.add(newSort("orderByDescription", SortBy.description, sdp, dataView));
        fragment.add(newSort("orderByOwner", SortBy.owner, sdp, dataView));
        fragment.add(newSort("orderByDate", SortBy.date, sdp, dataView));
        add(fragment);
    } else {
        // not sortable
        Fragment fragment = new Fragment("headerContent", "groupRepositoryHeader", RepositoriesPanel.this);
        add(fragment);
    }
}

From source file:com.gitblit.wicket.panels.TeamsPanel.java

License:Apache License

public TeamsPanel(String wicketId, final boolean showAdmin) {
    super(wicketId);

    Fragment adminLinks = new Fragment("adminPanel", "adminLinks", TeamsPanel.this);
    adminLinks.add(new BookmarkablePageLink<Void>("newTeam", EditTeamPage.class));
    add(adminLinks.setVisible(showAdmin));

    final List<TeamModel> teams = app().users().getAllTeams();
    DataView<TeamModel> teamsView = new DataView<TeamModel>("teamRow", new ListDataProvider<TeamModel>(teams)) {
        private static final long serialVersionUID = 1L;
        private int counter;

        @Override/*from   ww w .  j ava2s .c  o m*/
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<TeamModel> item) {
            final TeamModel entry = item.getModelObject();
            LinkPanel editLink = new LinkPanel("teamname", "list", entry.name, EditTeamPage.class,
                    WicketUtils.newTeamnameParameter(entry.name));
            WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.name);
            item.add(editLink);
            item.add(new Label("accountType", entry.accountType.name()));
            item.add(new Label("members", entry.users.size() > 0 ? ("" + entry.users.size()) : ""));
            item.add(new Label("repositories",
                    entry.repositories.size() > 0 ? ("" + entry.repositories.size()) : ""));
            Fragment teamLinks = new Fragment("teamLinks", "teamAdminLinks", TeamsPanel.this);
            teamLinks.add(new BookmarkablePageLink<Void>("editTeam", EditTeamPage.class,
                    WicketUtils.newTeamnameParameter(entry.name)));
            Link<Void> deleteLink = new Link<Void>("deleteTeam") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    if (app().users().deleteTeam(entry.name)) {
                        teams.remove(entry);
                        info(MessageFormat.format("Team ''{0}'' deleted.", entry.name));
                    } else {
                        error(MessageFormat.format("Failed to delete team ''{0}''!", entry.name));
                    }
                }
            };
            deleteLink.add(new JavascriptEventConfirmation("click",
                    MessageFormat.format("Delete team \"{0}\"?", entry.name)));
            teamLinks.add(deleteLink);
            item.add(teamLinks);

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(teamsView.setVisible(showAdmin));
}

From source file:com.gitblit.wicket.panels.UsersPanel.java

License:Apache License

public UsersPanel(String wicketId, final boolean showAdmin) {
    super(wicketId);

    Fragment adminLinks = new Fragment("adminPanel", "adminLinks", UsersPanel.this);
    adminLinks.add(new BookmarkablePageLink<Void>("newUser", EditUserPage.class));
    add(adminLinks.setVisible(showAdmin));

    final List<UserModel> users = app().users().getAllUsers();
    DataView<UserModel> usersView = new DataView<UserModel>("userRow", new ListDataProvider<UserModel>(users)) {
        private static final long serialVersionUID = 1L;
        private int counter;

        @Override/*  w  ww.  ja v a  2 s .c  om*/
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<UserModel> item) {
            final UserModel entry = item.getModelObject();
            String css = "list" + (entry.disabled ? "-strikethrough" : "");
            LinkPanel editLink = new LinkPanel("username", css, entry.username, EditUserPage.class,
                    WicketUtils.newUsernameParameter(entry.username));
            WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName());
            item.add(editLink);

            if (StringUtils.isEmpty(entry.displayName)) {
                item.add(new Label("displayName").setVisible(false));
            } else {
                editLink = new LinkPanel("displayName", css, entry.getDisplayName(), EditUserPage.class,
                        WicketUtils.newUsernameParameter(entry.username));
                WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName());
                item.add(editLink);
            }

            if (StringUtils.isEmpty(entry.emailAddress)) {
                item.add(new Label("emailAddress").setVisible(false));
            } else {
                editLink = new LinkPanel("emailAddress", css, entry.emailAddress, EditUserPage.class,
                        WicketUtils.newUsernameParameter(entry.username));
                WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName());
                item.add(editLink);
            }

            item.add(new Label("accountType", entry.accountType.name() + (entry.canAdmin() ? ", admin" : "")));
            item.add(new Label("teams", entry.teams.size() > 0 ? ("" + entry.teams.size()) : ""));
            item.add(new Label("repositories",
                    entry.permissions.size() > 0 ? ("" + entry.permissions.size()) : ""));
            Fragment userLinks = new Fragment("userLinks", "userAdminLinks", UsersPanel.this);
            userLinks.add(new BookmarkablePageLink<Void>("editUser", EditUserPage.class,
                    WicketUtils.newUsernameParameter(entry.username)));
            Link<Void> deleteLink = new Link<Void>("deleteUser") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    if (app().users().deleteUser(entry.username)) {
                        users.remove(entry);
                        info(MessageFormat.format(getString("gb.userDeleted"), entry.username));
                    } else {
                        error(MessageFormat.format(getString("gb.deleteUserFailed"), entry.username));
                    }
                }
            };
            deleteLink.add(new JavascriptEventConfirmation("click",
                    MessageFormat.format(getString("gb.deleteUser"), entry.username)));
            userLinks.add(deleteLink);
            item.add(userLinks);

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(usersView.setVisible(showAdmin));
}

From source file:com.gkrupa.samples.rebel.wicket.pages.HomePage.java

License:Apache License

@Override
protected void onInitialize() {
    super.onInitialize();
    add(new Link<Void>("gotoPanelsLink") {
        private static final long serialVersionUID = 1L;

        @Override/* w  w  w .ja  va 2  s  .  c  om*/
        public void onClick() {
            setResponsePage(PanelsPage.class);
        }
    });
}

From source file:com.google.code.jqwicket.TipTipPage.java

License:Apache License

@SuppressWarnings("serial")
public TipTipPage() {

    add(new GenericTipTipBehavior(".someClass",
            new TipTipOptions().content("<h3>this is custom dynamic tooltip</h3>").maxWidth("auto")));

    add(new Link<Void>("tiptip") {
        @Override/*www .  j a  v  a  2 s  .co  m*/
        public void onClick() {
        }
    }.add(new TipTipBehavior(new TipTipOptions().maxWidth("auto").edgeOffset(10))));

}

From source file:com.inductiveautomation.xopc.drivers.modbus2.configuration.web.ModbusConfigurationUI.java

License:Open Source License

private void addComponents() {
    T settingsRecord = (T) getDefaultModelObject();
    String mapString = (String) TypeUtilities.toString(settingsRecord.getAddressMap());
    addressMap = MutableModbusAddressMap.fromParseableString(mapString);

    if (addressMap == null) {
        addressMap = new MutableModbusAddressMap();
    }//from   w  w  w. j  a  v a  2s  .  c  o m

    radix = addressMap.getDesignatorRadix();

    final Form<Object> form = new Form<Object>("form") {
        @Override
        protected void onSubmit() {
            handleOnSubmit();
        }
    };

    form.add(new FeedbackPanel("feedback"));

    final WebMarkupContainer tableContainer = new WebMarkupContainer("table-container");
    tableContainer.setOutputMarkupId(true);

    final WebMarkupContainer radixContainer = new WebMarkupContainer("radix-container") {
        @Override
        public boolean isVisible() {
            return entries.size() > 0;
        }
    };

    radixContainer.setOutputMarkupId(true);

    radixContainer.add(new Label("radix-label", new LenientResourceModel("radixlabel", "Radix")) {
        @Override
        public boolean isVisible() {
            return entries.size() > 0;
        }
    });

    final RequiredTextField<Integer> radixField = new RequiredTextField<Integer>("radix",
            new PropertyModel<Integer>(this, "radix")) {
        @Override
        public boolean isVisible() {
            return entries.size() > 0;
        }
    };

    radixField.add(new OnChangeAjaxBehavior() {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            try {
                Integer radix = Integer.parseInt(radixField.getValue());
                setRadix(radix);
            } catch (Exception e) {
            }
        }
    });

    radixContainer.add(radixField);

    tableContainer.add(radixContainer);

    radixContainer.add(new Link<Object>("set-radix") {
        @Override
        public void onClick() {
            if (addressMap != null) {

            }
        }

        @Override
        public boolean isVisible() {
            return false;
        }
    });

    // Create the configuration entries for the listview
    for (DesignatorRange dr : addressMap.keySet()) {
        MutableDesignatorRange mdr = new MutableDesignatorRange(dr);
        MutableModbusRange mbr = new MutableModbusRange(addressMap.get(dr));
        entries.add(new ModbusConfigurationEntry(mdr, mbr));
    }

    // Create the listview
    listview = new ListEditor<ModbusConfigurationEntry>("config-listview", getListviewModel()) {

        @Override
        protected void onPopulateItem(ListItem<ModbusConfigurationEntry> item) {
            final ModbusConfigurationEntry configEntry = item.getModelObject();

            item.add(newPrefixTextField(configEntry));

            item.add(newStartTextField(configEntry));

            item.add(newEndTextField(configEntry));

            item.add(newStepCheckboxField(configEntry));

            item.add(newModbusUnitIDTextField(configEntry));

            item.add(newModbusAddressTypeDropdown(configEntry));

            item.add(newModbusAddressTextField(configEntry));

            item.add(new DeleteLink("delete-link"));
        }
    };

    WebMarkupContainer noMappingsContainer = new WebMarkupContainer("no-mappings-container") {
        @Override
        public boolean isVisible() {
            return entries.size() == 0;
        }

        ;
    };
    noMappingsContainer
            .add(new Label("no-mappings-label", new LenientResourceModel("nomappings", "No mappings.")));

    tableContainer.add(noMappingsContainer);

    tableContainer.add(listview);
    form.add(tableContainer);

    form.add(new SubmitLink("add-row-link") {
        {
            setDefaultFormProcessing(false);
        }

        @Override
        public void onSubmit() {
            listview.addItem(new ModbusConfigurationEntry());
        }
    });

    form.add(new Button("save"));

    add(form);

    // CSV export
    try {
        Link<IResource> exportLink = new ResourceLink<IResource>("export-link", new ExportCsvResource());
        add(exportLink);
    } catch (Exception e) {
        Link<Object> exportLink = new Link<Object>("export-link") {
            @Override
            public void onClick() {
            }

            @Override
            public boolean isVisible() {
                return false;
            }
        };
        add(exportLink);
    }

    // CSV import
    final FileUploadField uploadField = new FileUploadField("upload-field");

    Form<?> uploadForm = new Form<Object>("upload-form") {
        @Override
        protected void onSubmit() {
            try {
                addressMap = ModbusCsvParser.fromCsv(uploadField.getFileUpload().getInputStream());

                radix = addressMap.getDesignatorRadix();

                listview.clear();

                for (DesignatorRange dr : addressMap.keySet()) {
                    MutableDesignatorRange mdr = new MutableDesignatorRange(dr);
                    MutableModbusRange mbr = new MutableModbusRange(addressMap.get(dr));
                    listview.addItem(new ModbusConfigurationEntry(mdr, mbr));
                }

            } catch (Exception e) {
                error("Error importing configuration from CSV file.");
            }
        }
    };

    uploadForm.add(uploadField);

    SubmitLink importLink = new SubmitLink("import-link");

    uploadForm.add(importLink);

    add(uploadForm);

}

From source file:com.jolira.enzian.tasks.ui.TasksViewer.java

License:Open Source License

/**
 * Create a new viewer//from w  w w  .  j a v  a 2 s  .c om
 * 
 * @param executor
 *            the executor to be displayed
 */
@Inject
public TasksViewer(final TaskExecutor executor) {
    final IModel<? extends List<? extends Task>> mdl = new LoadableDetachableModel<List<Task>>() {
        private static final long serialVersionUID = -2820663100472235781L;

        @Override
        protected List<Task> load() {
            final Task[] tasks = executor.getTasks();

            return Arrays.asList(tasks);
        }
    };
    final ListView<Task> taskView = new PropertyListView<Task>("task", mdl) {
        private static final long serialVersionUID = -7625713403597488210L;

        @Override
        protected void populateItem(final ListItem<Task> item) {
            item.add(new Label("name"));
            item.add(new Label("status"));
            item.add(new Label("progress", "N/A"));
            item.add(new Link<Void>("cancel") {
                private static final long serialVersionUID = 2527181238727006875L;

                @Override
                public void onClick() {
                    final Task task = item.getModelObject();

                    task.cancel();
                }
            });
        }
    };

    add(taskView);
}

From source file:com.lili.template.pageinheritance.TemplatePage.java

License:Apache License

/**
 * Constructor//from w  ww.  j  a  va  2s .  c  o m
 */
public TemplatePage() {
    add(new Label("title", new PropertyModel<String>(this, "pageTitle")));
    add(currentBanner = new Banner1("ad"));
    add(new Link("changeAdLink") {
        /**
         * @see org.apache.wicket.markup.html.link.Link#onClick()
         */
        @Override
        public void onClick() {
            if (currentBanner.getClass() == Banner1.class) {
                TemplatePage.this.replace(currentBanner = new Banner2("ad"));
            } else {
                TemplatePage.this.replace(currentBanner = new Banner1("ad"));
            }
        }
    });
    add(new BookmarkablePageLink<Void>("page1Link", Page1.class));
    add(new BookmarkablePageLink<Void>("page2Link", Page2.class));
}

From source file:com.lili.template.TemplateBorder.java

License:Apache License

/**
 * Constructor/*from ww w. ja  va  2  s  .co m*/
 * 
 * @param id
 */
public TemplateBorder(String id) {
    super(id);
    addToBorder(currentBanner = new Banner1("ad"));
    addToBorder(new Link("changeAdLink") {
        /**
         * @see org.apache.wicket.markup.html.link.Link#onClick()
         */
        @Override
        public void onClick() {
            if (currentBanner.getClass() == Banner1.class) {
                TemplateBorder.this.replaceInBorder(currentBanner = new Banner2("ad"));
            } else {
                TemplateBorder.this.replaceInBorder(currentBanner = new Banner1("ad"));
            }
        }
    });
    /*addToBorder(new BookmarkablePageLink<Void>("page1Link", Page1.class));
    addToBorder(new BookmarkablePageLink<Void>("page2Link", Page2.class));*/
}

From source file:com.marc.lastweek.web.components.classifiedaddetails.ClassifiedAdDetailPanel.java

License:Open Source License

public ClassifiedAdDetailPanel(String id, final Long classifiedAdId) {
    super(id);/*from  w  w w .j  av a  2 s  .c o  m*/

    add(HeaderContributor.forJavaScript(SLIDER_URL));
    final ClassifiedAd classifiedAd = LastweekApplication.get().getGeneralService().find(ClassifiedAd.class,
            classifiedAdId);

    final String title = classifiedAd.getTitle();
    final String description = classifiedAd.getDescription();
    final Double price = classifiedAd.getPrice();
    final Integer flag = classifiedAd.getFlag();
    final Integer state = classifiedAd.getState();
    final String hashCode = classifiedAd.getHashCode();
    final int sourceCode = classifiedAd.getSource().intValue();
    final Calendar publicationDate = classifiedAd.getPublicationDate();

    Folder imageFolder = LastweekApplication.get().getImageService().findFolderFromName(hashCode);

    List<File> images = LastweekApplication.get().getImageService().getAllTemporalFiles(imageFolder);

    if (images.size() != 0) {
        // final File file = images.get(0);
        // this.add(new ClassifiedAdImagePanel("imagePanel", file));
        this.add(new JQueryImagegallery("gallery", images));
    } else {
        // this.add(new Label("imagePanel", new
        // Model("No hay fotos disponibles")));
        this.add(new Label("gallery", new Model("No hay fotos disponibles")));
    }

    // TODO: add image, add province and category
    this.add(new Label("classifiedAdPublicationDate",
            ViewUtils.labelizer(DateUtils.getDaysFromThen(publicationDate))));
    this.add(new Label("classifiedAdTitle", ViewUtils.labelizer(title)));
    this.add(new Label("classifiedAdDescription", ViewUtils.labelizer(description))
            .setEscapeModelStrings(false));
    this.add(new Label("classifiedAdPrice", ViewUtils.labelizer(price)));
    this.add(new Label("provinceName", ViewUtils.labelizer(classifiedAd.getProvince().getName())));
    this.add(new Label("categoryName", ViewUtils.labelizer(classifiedAd.getCategory().getName())));
    this.add(new Label("subcategoryName", ViewUtils.labelizer(classifiedAd.getSubcategory().getName())));
    this.add(new Link("classifiedAdDescriptionLink") {

        private static final long serialVersionUID = 7411597974910148218L;

        @Override
        public void onClick() {
            // TODO: add onClick
        }

    });
    final ContactPanel contactPanel = new ContactPanel("contactPanel", null, classifiedAdId);
    this.add(contactPanel);
    contactPanel.setOutputMarkupId(true);
    this.add(new Link("classifiedAdContactLink") {

        private static final long serialVersionUID = -4262681914874430193L;

        @Override
        public void onClick() {
            // TODO: add onClick
        }

    });
    // this.add(new Label("userDataEmail", ViewUtils.labelizer(classifiedAd
    // .getUserData().getEmail())));
    this.add(new Label("userDataName", ViewUtils.labelizer(classifiedAd.getUserData().getName())));

    WebMarkupContainer showPhoneDiv = new WebMarkupContainer("showPhoneDiv");
    showPhoneDiv.setVisible(classifiedAd.getShowPhone().booleanValue());

    Label phone = new Label("userDataPhone", ViewUtils.labelizer(classifiedAd.getUserData().getPhone()));
    showPhoneDiv.add(phone);

    this.add(showPhoneDiv);

    ExternalLink classifiedAdSourceLink = new ExternalLink("classifiedAdSourceLink",
            classifiedAd.getSourceURL()) {

        private static final long serialVersionUID = -5872308114085631059L;

        @Override
        public boolean isVisible() {
            if (sourceCode == ClassifiedAd.SOURCE_OUR)
                return false;
            return true;
        }
    };

    classifiedAdSourceLink.add(new Label("classifiedAdSource",
            ViewUtils.labelizer(CommonNamingValues.getSourceName(classifiedAd.getSource()))));
    this.add(classifiedAdSourceLink);

    // TODO: Put strings in properties files
    final Label flagClassifiedAdLabel = new Label("flagClassifiedAdSpan", "Marcar anuncio como inapropiado");
    Link flagClassifiedAdLink = new Link("flagClassifiedAdLink") {
        private static final long serialVersionUID = -4262681914874430193L;

        @Override
        public void onClick() {
            ModifiedClassifiedAdTO modifiedClassifiedAdTO = new ModifiedClassifiedAdTO(classifiedAdId, title,
                    description, price, Integer.valueOf(flag.intValue() + 1), state, hashCode);
            LastweekApplication.get().getGeneralService().modify(ClassifiedAd.class, modifiedClassifiedAdTO);
            this.setEnabled(false);
            this.setVisible(false);
            info("El anuncio ha sido marcado como inapropiado.");
        }
    };
    flagClassifiedAdLink.add(flagClassifiedAdLabel);
    this.add(flagClassifiedAdLink);

    Link addToFavoritesLink = new Link("addToFavoritesLink") {
        private static final long serialVersionUID = 8340452899324058655L;

        @Override
        public void onClick() {
            LastweekSession.get().addFavorite(classifiedAdId);
            info("Anuncio aadido a favoritos");
            this.setVisible(false);

        }

        @Override
        public boolean isVisible() {
            if (LastweekSession.get().containsFavorite(classifiedAdId))
                return false;
            return true;
        }

    };
    this.add(addToFavoritesLink);
}