List of usage examples for org.apache.wicket.markup.html.link Link Link
public Link(final String id, IModel<T> model)
From source file:almira.sample.web.SearchResultPanel.java
License:Apache License
/** * Constructor.//from w w w .j a v a2 s .c om * * @param id component id * @param searchQuery the search query */ public SearchResultPanel(String id, String searchQuery) { super(id); IDataProvider<Catapult> dataProvider; if (searchQuery == null) { dataProvider = new CatapultListDataProvider(catapultQueryService); } else { dataProvider = new CatapultSearchDataProvider(catapultQueryService, searchQuery); } DataView<Catapult> dataView = new DataView<Catapult>("rows", dataProvider, ITEMS_PER_PAGE) { @Override protected void populateItem(Item<Catapult> item) { final Catapult catapult = item.getModelObject(); item.setModel(new CompoundPropertyModel<Catapult>(catapult)); item.add(new Label("id")); item.add(new Label("name")); item.add(new Label("created")); item.add(new Label("lastModified")); item.add(new Link<Catapult>("delete", item.getModel()) { @Override public void onClick() { // Detached object: Need to delete by ID! catapultUpdateService.delete(catapult.getId()); } }); } }; add(dataView); add(new PagingNavigator("footerPaginator", dataView)); }
From source file:au.org.theark.core.web.component.panel.DownloadIconLinkPanel.java
License:Open Source License
protected Link<T> buildLink(IModel<T> innerModel) { return new Link<T>("arkLink", innerModel) { private static final long serialVersionUID = 1L; @Override/*from ww w. ja va 2 s.c o m*/ public void onClick() { getRequestCycle().scheduleRequestHandlerAfterCurrent(getDownloadRequestHandler()); } }; }
From source file:com.cubeia.games.poker.admin.wicket.util.ArchiveLinkPanel.java
License:Open Source License
@SuppressWarnings("serial") public ArchiveLinkPanel(String id, final Archiver archiver, final Object entity, final Class<? extends BasePage> responsePage) { super(id);//w w w .java 2 s. c o m Link<String> delete = new Link<String>("link", Model.of("delete")) { @Override public void onClick() { try { archiver.archive(); adminDAO.merge(entity); setResponsePage(responsePage); } catch (Exception ex) { this.getPage().error("Could not archive: " + ex.getMessage()); } } }; delete.add(new AttributeAppender("class", "btn btn-danger btn-mini")); add(delete); }
From source file:com.cubeia.games.poker.admin.wicket.util.DeleteLinkPanel.java
License:Open Source License
@SuppressWarnings("serial") public DeleteLinkPanel(String id, final Class<?> entityClass, final int entityId, final Class<? extends BasePage> responsePage) { super(id);// w w w .j a v a 2 s . c om Link<String> delete = new Link<String>("link", Model.of("delete")) { @Override public void onClick() { try { adminDAO.removeItem(entityClass, entityId); setResponsePage(responsePage); } catch (Exception ex) { this.getPage().error("Could not delete: " + ex.getMessage()); } } }; delete.add(new AttributeAppender("class", "btn btn-danger btn-mini")); add(delete); }
From source file:com.example.UserSearchPage.java
License:Open Source License
public UserSearchPage() { add(new SearchForm("userSearchForm")); add(new ListView<User>("users", searchResult) { private static final long serialVersionUID = 1L; @Override//w w w . j a va2s . c om protected void populateItem(ListItem<User> item) { User user = item.getModelObject(); Link<User> userViewLink = new Link<User>("userView", item.getModel()) { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new UserViewPage(UserSearchPage.this, (User) getModelObject())); } }; item.add(userViewLink); userViewLink.add(new Label("ID", user.getId())); item.add(new Label("firstName", user.getFirstName())); item.add(new Label("lastName", user.getLastName())); Link<User> teamViewLink = new Link<User>("teamView", item.getModel()) { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new TeamViewPage(UserSearchPage.this, ((User) getModelObject()).getTeam())); } }; item.add(teamViewLink); teamViewLink.add(new Label("teamLabel", user.getTeam().getName())); Link<User> unitViewLink = new Link<User>("unitView", item.getModel()) { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new UnitViewPage(UserSearchPage.this, ((User) getModelObject()).getTeam().getUnit())); } }; item.add(unitViewLink); unitViewLink.add(new Label("unitLabel", user.getTeam().getUnit().getName())); Link<User> countryViewLink = new Link<User>("countryView", item.getModel()) { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new CountryViewPage(UserSearchPage.this, ((User) getModelObject()).getTeam().getUnit().getCountry())); } }; item.add(countryViewLink); countryViewLink.add(new Label("countryLabel", user.getTeam().getUnit().getCountry().getName())); item.add(new Link<User>("userEdit", item.getModel()) { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new UserEditPage(UserSearchPage.this, (User) getModelObject())); } }); } }); }
From source file:com.francetelecom.clara.cloud.presentation.applications.ApplicationActionPanel.java
License:Apache License
private void initComponent() { AjaxLink<Application> deleteBtn = new AjaxLink<Application>("app-delete", getModel()) { private static final long serialVersionUID = -3624723770141461652L; @Override//from ww w . j av a2s . c om public void onClick(AjaxRequestTarget target) { parentPage.deleteApplication(target, getModelObject()); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { attributes.getAjaxCallListeners() .add(new DeleteConfirmationDecorator(WicketUtils .getStringResourceModel(this, "portal.application.action.delete.confirm", new Model<String[]>(new String[] { getModelObject().getLabel() })) .getObject())); } @Override public boolean isVisible() { return canBeDeleted; } }; WebMarkupContainer deleteDisabledSpan = new WebMarkupContainer("app-delete-disable"); if (canBeDeleted) { deleteDisabledSpan.setVisible(false); } add(deleteDisabledSpan); deleteSpan = new WebMarkupContainer("deleteImg"); deleteBtn.add(deleteSpan); add(deleteBtn); Link<Application> editBtn = new Link<Application>("app-edit", getModel()) { private static final long serialVersionUID = -5024306917768033030L; @Override public void onClick() { PageParameters params = new PageParameters(); params.set("appUid", getModelObject().getUID()); params.set("edit", "1"); SelectedAppPage appPage = new SelectedAppPage(params); setResponsePage(appPage); } @Override public boolean isVisible() { return getModelObject().isEditable(); } }; editBtn.add(new AttributeAppender("title", new ResourceModel("portal.application.action.modify"))); WebMarkupContainer editDisabledSpan = new WebMarkupContainer("app-edit-disable"); if (getModelObject().isEditable()) { editDisabledSpan.setVisible(false); } add(editDisabledSpan); editSpan = new WebMarkupContainer("editImg"); editBtn.add(editSpan); add(editBtn); }
From source file:com.francetelecom.clara.cloud.presentation.releases.ReleaseActionPanel.java
License:Apache License
public ReleaseActionPanel(String id, final IModel<ApplicationRelease> model, final DataTable dataTable, final ManageApplicationRelease manageApplicationRelease) { super(id, model); this.manageApplicationRelease = manageApplicationRelease; deleteBtn = new AjaxLink<ApplicationRelease>("release-delete", getModel()) { @Override/*from w w w. ja v a 2 s .co m*/ public void onClick(AjaxRequestTarget target) { try { manageApplicationRelease.deleteApplicationRelease(getModelObject().getUID()); target.add(dataTable); if (getPage() instanceof SelectedAppPage) { ((SelectedAppPage) getPage()).updateAppInfopanel(target); } } catch (ObjectNotFoundException e) { BusinessExceptionHandler handler = new BusinessExceptionHandler(this); handler.error(e); target.add(this.getPage()); } catch (BusinessException e) { // String errMsg = getString("portal.release.action.delete.envexists"); String errMsg = new ResourceModel("portal.release.action.delete.envexists").getObject(); logger.error(errMsg); error(errMsg); } target.add(this.getPage()); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { String releaseName = getModelObject().getApplication().getLabel() + " - " + getModelObject().getReleaseVersion(); attributes.getAjaxCallListeners() .add(new DeleteConfirmationDecorator( WicketUtils.getStringResourceModel(this, "portal.release.action.delete.confirm", new Model<String[]>(new String[] { releaseName })).getObject())); // attributes.getAjaxCallListeners().add(new DeleteConfirmationDecorator(getString("portal.release.action.delete.confirm", new Model<String[]>(new String[]{ releaseName })))); } @Override public boolean isVisible() { return canBeDeleted(); } }; deleteBtn.add(new AttributeAppender("title", new ResourceModel("portal.release.action.delete"))); WebMarkupContainer deleteDisabledSpan = new WebMarkupContainer("rel-delete-disable"); if (canBeDeleted()) { deleteDisabledSpan.setVisible(false); } add(deleteDisabledSpan); deleteSpan = new WebMarkupContainer("deleteImg"); deleteBtn.add(deleteSpan); add(deleteBtn); Link<ApplicationRelease> editBtn = new Link<ApplicationRelease>("release-edit", getModel()) { @Override public void onClick() { PageParameters params = new PageParameters(); params.set("appUid", getModelObject().getApplication().getUID()); params.set("releaseUid", getModelObject().getUID()); params.set("edit", "1"); SelectedReleasePage releasePage = new SelectedReleasePage(params); setResponsePage(releasePage); } @Override public boolean isVisible() { return getModelObject().getApplication().isEditable(); } }; editBtn.add(new AttributeAppender("title", new ResourceModel("portal.release.action.edit"))); editSpan = new WebMarkupContainer("editImg"); editBtn.add(editSpan); add(editBtn); WebMarkupContainer editDisabledSpan = new WebMarkupContainer("release-edit-disable"); if (getModelObject().getApplication().isEditable()) { editDisabledSpan.setVisible(false); } add(editDisabledSpan); Link<ApplicationRelease> editArchitectureBtn = new Link<ApplicationRelease>("release-edit-architecture", getModel()) { @Override public void onClick() { PageParameters params = new PageParameters(); params.set("appUid", getModelObject().getApplication().getUID()); params.set("releaseUid", getModelObject().getUID()); DesignerPage designerPage = new DesignerPage(params); setResponsePage(designerPage); } }; // editArchitectureBtn .add(new AttributeAppender("title", new ResourceModel("portal.release.designer.edit.button"))); editArchitectureSpan = new WebMarkupContainer("editArchitectureImg"); editArchitectureBtn.add(editArchitectureSpan); add(editArchitectureBtn); }
From source file:com.gitblit.wicket.pages.CommitDiffPage.java
License:Apache License
public CommitDiffPage(PageParameters params) { super(params); final Repository r = getRepository(); final RevCommit commit = getCommit(); final DiffComparator diffComparator = WicketUtils.getDiffComparator(params); List<String> parents = new ArrayList<String>(); if (commit.getParentCount() > 0) { for (RevCommit parent : commit.getParents()) { parents.add(parent.name());//w w w . ja va 2s.com } } // commit page links if (parents.size() == 0) { add(new Label("parentLink", getString("gb.none"))); } else { add(new LinkPanel("parentLink", null, parents.get(0).substring(0, 8), CommitDiffPage.class, newCommitParameter(parents.get(0)))); } add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class, WicketUtils.newObjectParameter(repositoryName, objectId))); add(new BookmarkablePageLink<Void>("commitLink", CommitPage.class, WicketUtils.newObjectParameter(repositoryName, objectId))); add(new LinkPanel("whitespaceLink", null, getString(diffComparator.getOpposite().getTranslationKey()), CommitDiffPage.class, WicketUtils.newDiffParameter(repositoryName, objectId, diffComparator.getOpposite()))); add(new CommitHeaderPanel("commitHeader", repositoryName, commit)); final List<String> imageExtensions = app().settings().getStrings(Keys.web.imageExtensions); final ImageDiffHandler handler = new ImageDiffHandler(this, repositoryName, parents.isEmpty() ? null : parents.get(0), commit.getName(), imageExtensions); final int tabLength = app().settings().getInteger(Keys.web.tabLength, 4); final DiffOutput diff = DiffUtils.getCommitDiff(r, commit, diffComparator, DiffOutputType.HTML, handler, tabLength); if (handler.getImgDiffCount() > 0) { addBottomScript("scripts/imgdiff.js"); // Tiny support script for image diffs } // add commit diffstat int insertions = 0; int deletions = 0; for (PathChangeModel pcm : diff.stat.paths) { insertions += pcm.insertions; deletions += pcm.deletions; } add(new DiffStatPanel("diffStat", insertions, deletions)); addFullText("fullMessage", commit.getFullMessage()); // git notes List<GitNote> notes = JGitUtils.getNotesOnCommit(r, commit); ListDataProvider<GitNote> notesDp = new ListDataProvider<GitNote>(notes); DataView<GitNote> notesView = new DataView<GitNote>("notes", notesDp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<GitNote> item) { GitNote entry = item.getModelObject(); item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef))); item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(), Constants.SearchType.AUTHOR)); item.add(new AvatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent())); item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef.getAuthorIdent().getWhen(), getTimeZone(), getTimeUtils())); item.add(new Label("noteContent", bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName, entry.content)).setEscapeModelStrings(false)); } }; add(notesView.setVisible(notes.size() > 0)); // changed paths list add(new CommitLegendPanel("commitLegend", diff.stat.paths)); ListDataProvider<PathChangeModel> pathsDp = new ListDataProvider<PathChangeModel>(diff.stat.paths); DataView<PathChangeModel> pathsView = new DataView<PathChangeModel>("changedPath", pathsDp) { private static final long serialVersionUID = 1L; int counter; @Override public void populateItem(final Item<PathChangeModel> item) { final PathChangeModel entry = item.getModelObject(); Label changeType = new Label("changeType", ""); WicketUtils.setChangeTypeCssClass(changeType, entry.changeType); setChangeTypeTooltip(changeType, entry.changeType); item.add(changeType); item.add(new DiffStatPanel("diffStat", entry.insertions, entry.deletions, true)); item.add(WicketUtils.setHtmlTooltip(new Label("filestore", ""), getString("gb.filestore")) .setVisible(entry.isFilestoreItem())); boolean hasSubmodule = false; String submodulePath = null; if (entry.isTree()) { // tree item.add(new LinkPanel("pathName", null, entry.path, TreePage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))); } else if (entry.isSubmodule()) { // submodule String submoduleId = entry.objectId; SubmoduleModel submodule = getSubmodule(entry.path); submodulePath = submodule.gitblitPath; hasSubmodule = submodule.hasSubmodule; // add relative link item.add(new LinkPanel("pathName", "list", entry.path + " @ " + getShortObjectId(submoduleId), "#n" + entry.objectId)); } else { // add relative link if (entry.isFilestoreItem()) { item.add(new LinkPanel("pathName", "list", entry.path, new Link<Object>("link", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } })); } else { item.add(new LinkPanel("pathName", "list", entry.path, "#n" + entry.objectId)); } } // quick links if (entry.isSubmodule()) { item.add(new ExternalLink("raw", "").setEnabled(false)); // submodule item.add(new ExternalLink("patch", "").setEnabled(false)); item.add(new BookmarkablePageLink<Void>("view", CommitPage.class, WicketUtils.newObjectParameter(submodulePath, entry.objectId)) .setEnabled(hasSubmodule)); item.add(new ExternalLink("blame", "").setEnabled(false)); item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD))); } else { // tree or blob item.add(new BookmarkablePageLink<Void>("patch", PatchPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE))); if (entry.isFilestoreItem()) { item.add(new Link<Object>("view", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } }); item.add(new Link<Object>("raw", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } }); } else { item.add(new BookmarkablePageLink<Void>("view", BlobPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.DELETE))); item.add(new ExternalLink("raw", RawServlet.asLink(getContextUrl(), repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.DELETE))); } item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE))); item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD))); } WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(pathsView); add(new Label("diffText", diff.content).setEscapeModelStrings(false)); }
From source file:com.gitblit.wicket.pages.CommitPage.java
License:Apache License
public CommitPage(PageParameters params) { super(params); Repository r = getRepository();//from w ww .ja v a 2s . c o m RevCommit c = getCommit(); List<String> parents = new ArrayList<String>(); if (c.getParentCount() > 0) { for (RevCommit parent : c.getParents()) { parents.add(parent.name()); } } // commit page links if (parents.size() == 0) { add(new Label("parentLink", "none")); add(new Label("commitdiffLink", getString("gb.commitdiff"))); } else { add(new LinkPanel("parentLink", null, getShortObjectId(parents.get(0)), CommitPage.class, newCommitParameter(parents.get(0)))); add(new LinkPanel("commitdiffLink", null, new StringResourceModel("gb.commitdiff", this, null), CommitDiffPage.class, WicketUtils.newObjectParameter(repositoryName, objectId))); } add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class, WicketUtils.newObjectParameter(repositoryName, objectId))); add(new CommitHeaderPanel("commitHeader", repositoryName, c)); addRefs(r, c); // author add(createPersonPanel("commitAuthor", c.getAuthorIdent(), Constants.SearchType.AUTHOR)); add(WicketUtils.createTimestampLabel("commitAuthorDate", c.getAuthorIdent().getWhen(), getTimeZone(), getTimeUtils())); // committer add(createPersonPanel("commitCommitter", c.getCommitterIdent(), Constants.SearchType.COMMITTER)); add(WicketUtils.createTimestampLabel("commitCommitterDate", c.getCommitterIdent().getWhen(), getTimeZone(), getTimeUtils())); add(new Label("commitId", c.getName())); add(new LinkPanel("commitTree", "list", c.getTree().getName(), TreePage.class, newCommitParameter())); add(new BookmarkablePageLink<Void>("treeLink", TreePage.class, newCommitParameter())); final String baseUrl = WicketUtils.getGitblitURL(getRequest()); add(new CompressedDownloadsPanel("compressedLinks", baseUrl, repositoryName, objectId, null)); // Parent Commits ListDataProvider<String> parentsDp = new ListDataProvider<String>(parents); DataView<String> parentsView = new DataView<String>("commitParents", parentsDp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<String> item) { String entry = item.getModelObject(); item.add(new LinkPanel("commitParent", "list", entry, CommitPage.class, newCommitParameter(entry))); item.add(new BookmarkablePageLink<Void>("view", CommitPage.class, newCommitParameter(entry))); item.add(new BookmarkablePageLink<Void>("diff", CommitDiffPage.class, newCommitParameter(entry))); } }; add(parentsView); addFullText("fullMessage", c.getFullMessage()); // git notes List<GitNote> notes = JGitUtils.getNotesOnCommit(r, c); ListDataProvider<GitNote> notesDp = new ListDataProvider<GitNote>(notes); DataView<GitNote> notesView = new DataView<GitNote>("notes", notesDp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<GitNote> item) { GitNote entry = item.getModelObject(); item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef))); item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(), Constants.SearchType.AUTHOR)); item.add(new AvatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent())); item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef.getAuthorIdent().getWhen(), getTimeZone(), getTimeUtils())); item.add(new Label("noteContent", bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName, entry.content)).setEscapeModelStrings(false)); } }; add(notesView.setVisible(notes.size() > 0)); // changed paths list List<PathChangeModel> paths = JGitUtils.getFilesInCommit(r, c); // add commit diffstat int insertions = 0; int deletions = 0; for (PathChangeModel pcm : paths) { insertions += pcm.insertions; deletions += pcm.deletions; } add(new DiffStatPanel("diffStat", insertions, deletions)); add(new CommitLegendPanel("commitLegend", paths)); ListDataProvider<PathChangeModel> pathsDp = new ListDataProvider<PathChangeModel>(paths); DataView<PathChangeModel> pathsView = new DataView<PathChangeModel>("changedPath", pathsDp) { private static final long serialVersionUID = 1L; int counter; @Override public void populateItem(final Item<PathChangeModel> item) { final PathChangeModel entry = item.getModelObject(); Label changeType = new Label("changeType", ""); WicketUtils.setChangeTypeCssClass(changeType, entry.changeType); setChangeTypeTooltip(changeType, entry.changeType); item.add(changeType); item.add(new DiffStatPanel("diffStat", entry.insertions, entry.deletions, true)); item.add(WicketUtils.setHtmlTooltip(new Label("filestore", ""), getString("gb.filestore")) .setVisible(entry.isFilestoreItem())); boolean hasSubmodule = false; String submodulePath = null; if (entry.isTree()) { // tree item.add(new LinkPanel("pathName", null, entry.path, TreePage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))); } else if (entry.isSubmodule()) { // submodule String submoduleId = entry.objectId; SubmoduleModel submodule = getSubmodule(entry.path); submodulePath = submodule.gitblitPath; hasSubmodule = submodule.hasSubmodule; item.add(new LinkPanel("pathName", "list", entry.path + " @ " + getShortObjectId(submoduleId), TreePage.class, WicketUtils.newPathParameter(submodulePath, submoduleId, "")) .setEnabled(hasSubmodule)); } else { // blob String displayPath = entry.path; String path = entry.path; if (entry.isSymlink()) { path = JGitUtils.getStringContent(getRepository(), getCommit().getTree(), path); displayPath = entry.path + " -> " + path; } if (entry.isFilestoreItem()) { item.add(new LinkPanel("pathName", "list", entry.path, new Link<Object>("link", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } })); } else { item.add(new LinkPanel("pathName", "list", displayPath, BlobPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, path))); } } // quick links if (entry.isSubmodule()) { item.add(new ExternalLink("raw", "").setEnabled(false)); // submodule item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD))); item.add(new BookmarkablePageLink<Void>("view", CommitPage.class, WicketUtils.newObjectParameter(submodulePath, entry.objectId)) .setEnabled(hasSubmodule)); item.add(new ExternalLink("blame", "").setEnabled(false)); item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD))); } else { // tree or blob item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE))); if (entry.isFilestoreItem()) { item.add(new Link<Object>("view", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } }); item.add(new Link<Object>("raw", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } }); } else { item.add(new BookmarkablePageLink<Void>("view", BlobPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.DELETE))); String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, entry.commitId, entry.path); item.add(new ExternalLink("raw", rawUrl) .setEnabled(!entry.changeType.equals(ChangeType.DELETE))); } item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE))); item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)) .setEnabled(!entry.changeType.equals(ChangeType.ADD))); } WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(pathsView); }
From source file:com.gitblit.wicket.pages.TreePage.java
License:Apache License
public TreePage(PageParameters params) { super(params); final String path = WicketUtils.getPath(params); Repository r = getRepository();//www . jav a 2 s . com RevCommit commit = getCommit(); List<PathModel> paths = JGitUtils.getFilesInPath2(r, path, commit); // tree page links add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, objectId, path))); add(new CompressedDownloadsPanel("compressedLinks", GitBlitRequestUtils.getRelativePathPrefixToContextRoot(), repositoryName, objectId, path)); add(new CommitHeaderPanel("commitHeader", repositoryName, commit)); // breadcrumbs add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, path, objectId)); if (path != null && path.trim().length() > 0) { // add .. parent path entry String parentPath = null; if (path.lastIndexOf('/') > -1) { parentPath = path.substring(0, path.lastIndexOf('/')); } PathModel model = new PathModel("..", parentPath, null, 0, FileMode.TREE.getBits(), null, objectId); model.isParentPath = true; paths.add(0, model); } final String id = getBestCommitId(commit); final ByteFormat byteFormat = new ByteFormat(); final String baseUrl = WicketUtils.getGitblitURL(getRequest()); // changed paths list ListDataProvider<PathModel> pathsDp = new ListDataProvider<PathModel>(paths); DataView<PathModel> pathsView = new DataView<PathModel>("changedPath", pathsDp) { private static final long serialVersionUID = 1L; int counter; @Override public void populateItem(final Item<PathModel> item) { final PathModel entry = item.getModelObject(); item.add(new Label("pathPermissions", JGitUtils.getPermissionsFromMode(entry.mode))); item.add(WicketUtils.setHtmlTooltip(new Label("filestore", ""), getString("gb.filestore")) .setVisible(entry.isFilestoreItem())); if (entry.isParentPath) { // parent .. path item.add(WicketUtils.newBlankImage("pathIcon")); item.add(new Label("pathSize", "")); item.add(new LinkPanel("pathName", null, entry.name, TreePage.class, WicketUtils.newPathParameter(repositoryName, id, entry.path))); item.add(new Label("pathLinks", "")); } else { if (entry.isTree()) { // folder/tree link item.add(WicketUtils.newImage("pathIcon", "folder_16x16.png")); item.add(new Label("pathSize", "")); item.add(new LinkPanel("pathName", "list", entry.name, TreePage.class, WicketUtils.newPathParameter(repositoryName, id, entry.path))); // links Fragment links = new Fragment("pathLinks", "treeLinks", TreePage.this); links.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newPathParameter(repositoryName, id, entry.path))); links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, id, entry.path))); links.add(new CompressedDownloadsPanel("compressedLinks", baseUrl, repositoryName, objectId, entry.path)); item.add(links); } else if (entry.isSubmodule()) { // submodule String submoduleId = entry.objectId; String submodulePath; boolean hasSubmodule = false; SubmoduleModel submodule = getSubmodule(entry.path); submodulePath = submodule.gitblitPath; hasSubmodule = submodule.hasSubmodule; item.add(WicketUtils.newImage("pathIcon", "git-orange-16x16.png")); item.add(new Label("pathSize", "")); item.add(new LinkPanel("pathName", "list", entry.name + " @ " + getShortObjectId(submoduleId), TreePage.class, WicketUtils.newPathParameter(submodulePath, submoduleId, "")) .setEnabled(hasSubmodule)); Fragment links = new Fragment("pathLinks", "submoduleLinks", TreePage.this); links.add(new BookmarkablePageLink<Void>("view", SummaryPage.class, WicketUtils.newRepositoryParameter(submodulePath)).setEnabled(hasSubmodule)); links.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newPathParameter(submodulePath, submoduleId, "")) .setEnabled(hasSubmodule)); links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, id, entry.path))); links.add(new CompressedDownloadsPanel("compressedLinks", baseUrl, submodulePath, submoduleId, "").setEnabled(hasSubmodule)); item.add(links); } else { // blob link String displayPath = entry.name; String path = entry.path; if (entry.isSymlink()) { path = JGitUtils.getStringContent(getRepository(), getCommit().getTree(), path); displayPath = entry.name + " -> " + path; } item.add(WicketUtils.getFileImage("pathIcon", entry.name)); item.add(new Label("pathSize", byteFormat.format(entry.size))); // links Fragment links = new Fragment("pathLinks", "blobLinks", TreePage.this); if (entry.isFilestoreItem()) { item.add(new LinkPanel("pathName", "list", displayPath, new Link<Object>("link", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle() .scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } })); links.add(new Link<Object>("view", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle() .scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } }); links.add(new Link<Object>("raw", null) { private static final long serialVersionUID = 1L; @Override public void onClick() { IResourceStream resourceStream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { UserModel user = GitBlitWebSession.get().getUser(); user = user == null ? UserModel.ANONYMOUS : user; app().filestore().downloadBlob(entry.getFilestoreOid(), user, getRepositoryModel(), output); } }; ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler( resourceStream, entry.path); getRequestCycle() .scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler); } }); } else { item.add(new LinkPanel("pathName", "list", displayPath, BlobPage.class, WicketUtils.newPathParameter(repositoryName, id, path))); links.add(new BookmarkablePageLink<Void>("view", BlobPage.class, WicketUtils.newPathParameter(repositoryName, id, path))); String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, id, path); links.add(new ExternalLink("raw", rawUrl)); } links.add(new BookmarkablePageLink<Void>("blame", BlamePage.class, WicketUtils.newPathParameter(repositoryName, id, path))); links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, id, path))); item.add(links); } } WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(pathsView); }