List of usage examples for org.apache.wicket Component add
public Component add(final Behavior... behaviors)
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
public static void setSize(Component component, final ComponentSize size) { if (component instanceof ComponentWrapperPanel) { component = ((ComponentWrapperPanel) component).getFormComponent(); }// w w w . jav a 2 s.c om component.add(AttributeModifier.append("class", size.getClassAttrValue())); }
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
/** * Sets the html attribute placeholder.//from ww w . j a v a2 s . c o m * @param component * @param value */ public static void setPlaceHolderAttribute(Component component, final String value) { if (component instanceof ComponentWrapperPanel) { component = ((ComponentWrapperPanel) component).getFormComponent(); } component.add(AttributeModifier.replace("placeholder", value)); }
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
public static void append(final Component component, final RowCssClass... rowCssClasses) { for (final RowCssClass rowCssClass : rowCssClasses) { component.add(AttributeModifier.append("class", rowCssClass.getCssClass())); }//w w w .j a v a 2s .c o m }
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
/** * Adds a SimpleAttributeModifier("title", ...) to the given component. Does not modify the given tool tip text! * @param component//from ww w.ja v a 2 s . c o m * @param title * @param text If the string contains "\n" characters then html=true and <br/> are used. */ public static Component addTooltip(final Component component, final IModel<String> title, IModel<String> text) { if (text != null && text.getObject() != null && text.getObject().indexOf("\n") > 0) { final String newText = HtmlHelper.escapeHtml(text.getObject(), true); text = Model.of(newText); component.add(AttributeModifier.replace("data-html", true)); } if (title != null && title.getObject() != null) { component.add(AttributeModifier.replace("rel", "mypopup")); component.add(AttributeModifier.replace("data-original-title", title)); component.add(AttributeModifier.replace("data-content", text)); } else { component.add(AttributeModifier.replace("rel", "mytooltip")); component.add(AttributeModifier.replace("title", text)); } return component; }
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
public static Component setWarningTooltip(final Component component) { component.add(AttributeModifier.append("class", "warning")); return component; }
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
/** * Sets attribute font-size: style="font-size: 1.1em;"; * @param component//from www .ja va 2 s . c o m * @param size * @return This for chaining. */ public static Component setFontSizeLarge(final Component component) { component.add(AttributeModifier.append("style", "font-size: 1.5em;")); return component; }
From source file:org.projectforge.web.wicket.WicketUtils.java
License:Open Source License
public static Component setStrong(final Component component) { component.add(AttributeModifier.append("style", "font-weight: bold;")); return component; }
From source file:org.sakaiproject.dash.tool.panels.CalendarLinksPanel.java
License:Educational Community License
/** * /*from www . j a va 2s.c o m*/ */ protected void initPanel() { if (selectedCalendarTab == null) { selectedCalendarTab = TAB_ID_UPCOMING; } if (this.calendarLinksDivId != null) { this.remove(calendarLinksDivId); } ResourceLoader rl = new ResourceLoader("dash_entity"); final WebMarkupContainer calendarLinksDiv = new WebMarkupContainer("calendarLinksDiv"); calendarLinksDiv.setOutputMarkupId(true); add(calendarLinksDiv); this.calendarLinksDivId = calendarLinksDiv.getId(); calendarLinksDiv.add(new Label("calendarTitle", rl.getString("dash.calendar.title"))); AjaxLink<IModel<List<CalendarLink>>> upcomingCalendarLink = new AjaxLink<IModel<List<CalendarLink>>>( "link") { @Override public void onClick(AjaxRequestTarget target) { logger.debug("upcomingCalendarLink onClick called"); // set currentCalendarTab to "upcoming" selectedCalendarTab = TAB_ID_UPCOMING; // reset calendar dataview to show upcoming stuff if (calendarLinksProvider == null) { calendarLinksProvider = new CalendarLinksDataProvider(selectedCalendarTab); } else { calendarLinksProvider.setCalendarTab(selectedCalendarTab); } // refresh calendarItemsDiv initPanel(); target.addComponent(CalendarLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/calendar/upcoming"); } }; upcomingCalendarLink.add(new Label("label", rl.getString("dash.calendar.upcoming"))); WebMarkupContainer upcomingCalendarTab = new WebMarkupContainer("upcomingCalendarTab"); if (selectedCalendarTab == null || TAB_ID_UPCOMING.equalsIgnoreCase(selectedCalendarTab)) { upcomingCalendarTab.add(new SimpleAttributeModifier("class", "activeTab")); } upcomingCalendarTab.add(upcomingCalendarLink); calendarLinksDiv.add(upcomingCalendarTab); AjaxLink<IModel<List<CalendarLink>>> pastCalendarLink = new AjaxLink<IModel<List<CalendarLink>>>("link") { @Override public void onClick(AjaxRequestTarget target) { logger.debug("pastCalendarLink onClick called"); // set currentCalendarTab to "past" selectedCalendarTab = TAB_ID_PAST; // reset calendar dataview to show past stuff if (calendarLinksProvider == null) { calendarLinksProvider = new CalendarLinksDataProvider(selectedCalendarTab); } else { calendarLinksProvider.setCalendarTab(selectedCalendarTab); } // refresh calendarItemsDiv initPanel(); target.addComponent(CalendarLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/calendar/past"); } }; pastCalendarLink.add(new Label("label", rl.getString("dash.calendar.past"))); WebMarkupContainer pastCalendarTab = new WebMarkupContainer("pastCalendarTab"); if (selectedCalendarTab != null && TAB_ID_PAST.equalsIgnoreCase(selectedCalendarTab)) { pastCalendarTab.add(new SimpleAttributeModifier("class", "activeTab")); } pastCalendarTab.add(pastCalendarLink); calendarLinksDiv.add(pastCalendarTab); AjaxLink<IModel<List<CalendarLink>>> starredCalendarLink = new AjaxLink<IModel<List<CalendarLink>>>( "link") { @Override public void onClick(AjaxRequestTarget target) { logger.debug("starredCalendarLink onClick called"); // set currentCalendarTab to "starred" selectedCalendarTab = TAB_ID_STARRED; // reset calendar dataview to show starred stuff if (calendarLinksProvider == null) { calendarLinksProvider = new CalendarLinksDataProvider(selectedCalendarTab); } else { calendarLinksProvider.setCalendarTab(selectedCalendarTab); } // refresh calendarItemsDiv initPanel(); target.addComponent(CalendarLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/calendar/starred"); } }; starredCalendarLink.add(new Label("label", rl.getString("dash.calendar.starred"))); WebMarkupContainer starredCalendarTab = new WebMarkupContainer("starredCalendarTab"); if (selectedCalendarTab != null && TAB_ID_STARRED.equalsIgnoreCase(selectedCalendarTab)) { starredCalendarTab.add(new SimpleAttributeModifier("class", "activeTab")); } starredCalendarTab.add(starredCalendarLink); calendarLinksDiv.add(starredCalendarTab); AjaxLink<IModel<List<CalendarLink>>> hiddenCalendarLink = new AjaxLink<IModel<List<CalendarLink>>>("link") { @Override public void onClick(AjaxRequestTarget target) { logger.debug("hiddenCalendarLink onClick called"); // set currentCalendarTab to "hidden" selectedCalendarTab = TAB_ID_HIDDEN; // reset calendar dataview to show hidden stuff if (calendarLinksProvider == null) { calendarLinksProvider = new CalendarLinksDataProvider(selectedCalendarTab); } else { calendarLinksProvider.setCalendarTab(selectedCalendarTab); } // refresh calendarItemsDiv initPanel(); target.addComponent(CalendarLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/calendar/hidden"); } }; hiddenCalendarLink.add(new Label("label", rl.getString("dash.calendar.hidden"))); WebMarkupContainer hiddenCalendarTab = new WebMarkupContainer("hiddenCalendarTab"); if (selectedCalendarTab != null && TAB_ID_HIDDEN.equalsIgnoreCase(selectedCalendarTab)) { hiddenCalendarTab.add(new SimpleAttributeModifier("class", "activeTab")); } hiddenCalendarTab.add(hiddenCalendarLink); calendarLinksDiv.add(hiddenCalendarTab); if (calendarLinksProvider == null) { calendarLinksProvider = new CalendarLinksDataProvider(selectedCalendarTab); } else { calendarLinksProvider.setCalendarTab(selectedCalendarTab); } WebMarkupContainer haveLinks = new WebMarkupContainer("haveLinks"); calendarLinksDiv.add(haveLinks); //present the calendar data in a table final DataView<CalendarLink> calendarDataView = new DataView<CalendarLink>("calendarItems", calendarLinksProvider) { @Override public void populateItem(final Item item) { if (item != null && item.getModelObject() != null) { item.setOutputMarkupId(true); ResourceLoader rl = new ResourceLoader("dash_entity"); final CalendarLink cLink = (CalendarLink) item.getModelObject(); final CalendarItem cItem = cLink.getCalendarItem(); if (logger.isDebugEnabled()) { logger.debug(this + "populateItem() item: " + item); } String itemType = cItem.getSourceType().getIdentifier(); item.add(new Label("itemType", itemType)); item.add(new Label("itemCount", "1")); item.add(new Label("entityReference", cItem.getEntityReference())); Component timeLabel = new Label("calendarDate", DateUtil.getCalendarTimeString(cItem.getCalendarTime())); timeLabel.add(new AttributeModifier("title", true, new AbstractReadOnlyModel() { @Override public Object getObject() { // TODO Auto-generated method stub return DateUtil.getFullDateString(cItem.getCalendarTime()); } })); item.add(timeLabel); //item.add(new Label("calendarTime", new SimpleDateFormat(TIME_FORMAT).format(cItem.getCalendarTime()))); Image icon = new Image("icon"); icon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { // TODO Auto-generated method stub return dashboardCommonLogic.getEntityIconUrl(cItem.getSourceType().getIdentifier(), cItem.getSubtype()); } })); item.add(icon); StringBuilder errorMessages = new StringBuilder(); String title = FormattedText.processFormattedText(cItem.getTitle(), errorMessages, true, true); if (errorMessages != null && errorMessages.length() > 0) { logger.warn("Error(s) encountered while cleaning calendarItem title:\n" + errorMessages); } ExternalLink itemLink = new ExternalLink("itemLink", "#itemEvent"); itemLink.add(new Label("itemTitle", title)); itemLink.add(new Label("itemClick", rl.getString("dash.details"))); item.add(itemLink); String calendarItemLabel = dashboardCommonLogic.getString(cItem.getCalendarTimeLabelKey(), "", itemType); if (calendarItemLabel == null) { calendarItemLabel = ""; } item.add(new Label("itemLabel", calendarItemLabel)); item.add(new ExternalLink("siteLink", cItem.getContext().getContextUrl(), cItem.getContext().getContextTitle())); if (cLink.isSticky()) { AjaxLink<CalendarLink> starringAction = new AjaxLink<CalendarLink>("starringAction") { protected long calendarItemId = cItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("starringAction onClick() called -- unstar "); // need to keep one item logger.debug(calendarItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.unkeepCalendarItem(sakaiUserId, calendarItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_UNSTAR, "/dashboard/calendar/" + selectedCalendarTab + "/" + calendarItemId); // if success adjust UI, else report failure? if (success) { target.addComponent(CalendarLinksPanel.this); if (TAB_ID_STARRED.equals(selectedCalendarTab)) { ResourceLoader rl = new ResourceLoader("dash_entity"); CalendarItem changedItem = dashboardCommonLogic .getCalendarItem(calendarItemId); JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig); String jsonStr = jsonHelper.getJsonObjectFromCalendarItem(changedItem) .toString(); String javascript = "reportSuccess('" + rl.getString("dash.ajax.unstar.success") + "'," + jsonStr + ",'" + "not-sure-about-url-yet" + "');"; target.appendJavascript(javascript); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); } } } }; starringAction.setDefaultModel(item.getModel()); item.add(starringAction); Image starringActionIcon = new Image("starringActionIcon"); starringActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_UNSTAR); } })); starringActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.unstar"); } })); starringAction.add(starringActionIcon); //starringAction.add(new Label("starringActionLabel", "Unstar")); if (cLink.isHidden()) { // this shouldn't happen, but just in case ... starringAction.setVisible(false); starringAction.setVisibilityAllowed(false); } } else { AjaxLink<CalendarLink> starringAction = new AjaxLink<CalendarLink>("starringAction") { protected long calendarItemId = cItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("starringAction onClick() called -- star "); // need to keep one item logger.debug(calendarItemId); //logger.debug(this.getModelObject()); ResourceLoader rl = new ResourceLoader("dash_entity"); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.keepCalendarItem(sakaiUserId, calendarItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_STAR, "/dashboard/calendar/" + selectedCalendarTab + "/" + calendarItemId); // if success adjust UI, else report failure? if (success) { target.addComponent(CalendarLinksPanel.this); //String javascript = "alert('success. (" + thisRow.getMarkupId() + ")');"; //target.appendJavascript(javascript ); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); } } }; Image starringActionIcon = new Image("starringActionIcon"); starringActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_STAR); } })); starringActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.star"); } })); starringAction.add(starringActionIcon); //starringAction.add(new Label("starringActionLabel", "Star")); item.add(starringAction); if (cLink.isHidden()) { starringAction.setVisible(false); starringAction.setVisibilityAllowed(false); } } if (cLink.isHidden()) { AjaxLink<CalendarLink> hidingAction = new AjaxLink<CalendarLink>("hidingAction") { protected long calendarItemId = cItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("hidingAction onClick() called -- show"); // need to trash one item logger.debug(calendarItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.unhideCalendarItem(sakaiUserId, calendarItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_SHOW, "/dashboard/calendar/" + selectedCalendarTab + "/" + calendarItemId); // if success adjust UI, else report failure? if (success) { ResourceLoader rl = new ResourceLoader("dash_entity"); target.addComponent(CalendarLinksPanel.this); CalendarItem changedItem = dashboardCommonLogic.getCalendarItem(calendarItemId); JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig); String jsonStr = jsonHelper.getJsonObjectFromCalendarItem(changedItem) .toString(); String javascript = "reportSuccess('" + rl.getString("dash.ajax.show.success") + "'," + jsonStr + ",'" + "not-sure-about-url-yet" + "');"; target.appendJavascript(javascript); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); } } }; hidingAction.setDefaultModel(item.getModel()); //actionHideThisLink.setModelObject(cItem); item.add(hidingAction); Image hidingActionIcon = new Image("hidingActionIcon"); hidingActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_SHOW); } })); hidingActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.show"); } })); hidingAction.add(hidingActionIcon); //hidingAction.add(new Label("hidingActionLabel", "Show")); if (cLink.isSticky() || TAB_ID_PAST.equals(selectedCalendarTab)) { // this shouldn't happen, but just in case ... hidingAction.setVisible(false); hidingAction.setVisibilityAllowed(false); } } else { AjaxLink<CalendarLink> hidingAction = new AjaxLink<CalendarLink>("hidingAction") { protected long calendarItemId = cItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("hidingAction onClick() called -- hide"); // need to trash one item logger.debug(calendarItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.hideCalendarItem(sakaiUserId, calendarItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_HIDE, "/dashboard/calendar/" + selectedCalendarTab + "/" + calendarItemId); // if success adjust UI, else report failure? if (success) { ResourceLoader rl = new ResourceLoader("dash_entity"); //renderItemCounter(calendarLinksDiv, calendarDataView); target.addComponent(CalendarLinksPanel.this); CalendarItem changedItem = dashboardCommonLogic.getCalendarItem(calendarItemId); JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig); String jsonStr = jsonHelper.getJsonObjectFromCalendarItem(changedItem) .toString(); String javascript = "reportSuccess('" + rl.getString("dash.ajax.hide.success") + "'," + jsonStr + ",'" + "not-sure-about-url-yet" + "');"; target.appendJavascript(javascript); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#schedPanel').focus();"); } } }; hidingAction.setDefaultModel(item.getModel()); //actionHideThisLink.setModelObject(cItem); item.add(hidingAction); Image hidingActionIcon = new Image("hidingActionIcon"); hidingActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_HIDE); } })); hidingActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.hide"); } })); hidingAction.add(hidingActionIcon); //hidingAction.add(new Label("hidingActionLabel", "Hide")); if (cLink.isSticky() || TAB_ID_PAST.equals(selectedCalendarTab)) { hidingAction.setVisible(false); hidingAction.setVisibilityAllowed(false); } } } } }; calendarDataView.setItemReuseStrategy(new DefaultItemReuseStrategy()); calendarDataView.setItemsPerPage(pageSize); haveLinks.add(calendarDataView); IPagingLabelProvider pagingLabelProvider = new IPagingLabelProvider() { public String getPageLabel(int page) { ResourceLoader rl = new ResourceLoader("dash_entity"); int itemCount = 0; String pagerStatus = ""; if (calendarDataView != null) { int first = 0; int last = 0; itemCount = calendarDataView.getItemCount(); int pageSize = calendarDataView.getItemsPerPage(); if (itemCount > pageSize) { //int page = calendarDataView.getCurrentPage(); first = page * pageSize + 1; last = Math.min(itemCount, (page + 1) * pageSize); if (first == last) { pagerStatus = Integer.toString(first); } else { pagerStatus = rl.getFormattedMessage("dash.pager.range", new Object[] { new Integer(first), new Integer(last) }); } } else if (itemCount > 1) { pagerStatus = rl.getFormattedMessage("dash.pager.range", new Object[] { new Integer(1), new Integer(itemCount) }); } else if (itemCount > 0) { pagerStatus = "1"; } else { pagerStatus = "0"; } } if (logger.isDebugEnabled()) { logger.debug("getPageLabel() " + pagerStatus); } return pagerStatus; } }; //add a pager to our table, only visible if we have more than 5 items calendarLinksDiv.add(new PagingNavigator("calendarNavigator", calendarDataView, pagingLabelProvider) { protected int currentPage = 1; @Override public boolean isVisible() { if (calendarLinksProvider != null && calendarLinksProvider.size() > pageSize) { return true; } return false; } @Override public void onBeforeRender() { super.onBeforeRender(); if (this.getPageable().getCurrentPage() != currentPage) { dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_PAGING, "/dashboard/calendar/" + selectedCalendarTab); currentPage = this.getPageable().getCurrentPage(); } //renderItemCounter(calendarLinksDiv, (DataView<CalendarLink>) getPageable()); //clear the feedback panel messages //clearFeedback(feedbackPanel); } }); WebMarkupContainer haveNoLinks = new WebMarkupContainer("haveNoLinks"); calendarLinksDiv.add(haveNoLinks); String noCalendarLinksLabel = null; if (TAB_ID_UPCOMING.equals(selectedCalendarTab)) { noCalendarLinksLabel = rl.getString("dash.calendar.noupcoming"); } else if (TAB_ID_PAST.equals(selectedCalendarTab)) { noCalendarLinksLabel = rl.getString("dash.calendar.nopast"); } else if (TAB_ID_STARRED.equals(selectedCalendarTab)) { noCalendarLinksLabel = rl.getString("dash.calendar.nostarred"); } else if (TAB_ID_HIDDEN.equals(selectedCalendarTab)) { noCalendarLinksLabel = rl.getString("dash.calendar.nohidden"); } haveNoLinks.add(new Label("message", noCalendarLinksLabel)); //renderItemCounter(calendarLinksDiv, calendarDataView); int itemCount = 0; if (calendarDataView != null) { itemCount = calendarDataView.getItemCount(); } if (itemCount > 0) { // show the haveLinks haveLinks.setVisible(true); // hide the haveNoLinks haveNoLinks.setVisible(false); } else { // show the haveNoLinks haveNoLinks.setVisible(true); // hide the haveLinks haveLinks.setVisible(false); } }
From source file:org.sakaiproject.dash.tool.panels.MOTDPanel.java
License:Educational Community License
protected void initPanel() { if (this.motdDivId != null) { this.remove(motdDivId); }/* w w w . j a v a2s. com*/ ResourceLoader rl = new ResourceLoader("dash_entity"); //get list of items from db, wrapped in a dataprovider motdProvider = new NewsLinksDataProvider(); final WebMarkupContainer motdDiv = new WebMarkupContainer("motdDiv"); motdDiv.setOutputMarkupId(true); add(motdDiv); this.motdDivId = motdDiv.getId(); motdDiv.add(new Label("motdPanelTitle", rl.getString("dash.motd.title"))); WebMarkupContainer haveLinks = new WebMarkupContainer("haveLinks"); motdDiv.add(haveLinks); //present the news data in a table final DataView<NewsItem> newsDataView = new DataView<NewsItem>("motd", motdProvider) { @Override public void populateItem(final Item item) { item.setOutputMarkupId(true); final NewsItem nItem = (NewsItem) item.getModelObject(); if (logger.isDebugEnabled()) { logger.debug(this + "populateItem() item: " + item); } String itemType = nItem.getSourceType().getIdentifier(); item.add(new Label("itemType", itemType)); item.add(new Label("itemCount", Integer.toString(nItem.getItemCount()))); item.add(new Label("entityReference", nItem.getEntityReference())); String siteTitle = nItem.getContext().getContextTitle(); StringBuilder errorMessages = new StringBuilder(); String title = FormattedText.processFormattedText(nItem.getTitle(), errorMessages, true, true); if (errorMessages != null && errorMessages.length() > 0) { logger.warn("Error(s) encountered while processing newsItem title:\n" + errorMessages); } item.add(new ExternalLink("itemLink", "#", title)); Image icon = new Image("icon"); icon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { // TODO Auto-generated method stub return dashboardCommonLogic.getEntityIconUrl(nItem.getSourceType().getIdentifier(), nItem.getSubtype()); } })); item.add(icon); String newsItemLabel = dashboardCommonLogic.getString(nItem.getNewsTimeLabelKey(), "", itemType); if (newsItemLabel == null) { newsItemLabel = ""; } item.add(new Label("itemLabel", newsItemLabel)); item.add(new ExternalLink("siteLink", nItem.getContext().getContextUrl(), siteTitle)); Component timeLabel = new Label("newsTime", DateUtil.getNewsTimeString(nItem.getNewsTime())); timeLabel.add(new AttributeModifier("title", true, new AbstractReadOnlyModel() { @Override public Object getObject() { // TODO Auto-generated method stub return DateUtil.getFullDateString(nItem.getNewsTime()); } })); item.add(timeLabel); AjaxLink<NewsLink> starringAction = new AjaxLink<NewsLink>("starringAction") { protected long newsItemId = nItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("starringAction onClick() called -- star "); // need to keep one item logger.debug(newsItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.keepNewsItem(sakaiUserId, newsItemId); // if success adjust UI, else report failure? if (success) { target.addComponent(MOTDPanel.this); //String javascript = "alert('success. (" + thisRow.getMarkupId() + ")');"; //target.appendJavascript(javascript ); } target.appendJavascript("resizeFrame('grow');"); } }; Image starringActionIcon = new Image("starringActionIcon"); starringActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return "/dashboard-tool/css/img/star-inact.png"; } })); starringActionIcon.add(new AttributeModifier("title", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.star"); } })); starringAction.add(starringActionIcon); // starringAction.add(new Label("starringActionLabel", "Star")); item.add(starringAction); } }; newsDataView.setItemReuseStrategy(new DefaultItemReuseStrategy()); newsDataView.setItemsPerPage(pageSize); haveLinks.add(newsDataView); //add a pager to our table, only visible if we have more than 5 items motdDiv.add(new PagingNavigator("newsNavigator", newsDataView) { @Override public boolean isVisible() { if (motdProvider.size() > pageSize) { return true; } return false; } @Override public void onBeforeRender() { super.onBeforeRender(); renderItemCounter(motdDiv, newsDataView); //clear the feedback panel messages //clearFeedback(feedbackPanel); } }); WebMarkupContainer haveNoLinks = new WebMarkupContainer("haveNoLinks"); motdDiv.add(haveNoLinks); String noNewsLinksLabel = null; noNewsLinksLabel = rl.getString("dash.news.nocurrent"); haveNoLinks.add(new Label("message", noNewsLinksLabel)); renderItemCounter(motdDiv, newsDataView); int itemCount = 0; if (newsDataView != null) { itemCount = newsDataView.getItemCount(); } if (itemCount > 0) { // show the haveLinks haveLinks.setVisible(true); // hide the noNewsLinksDiv haveNoLinks.setVisible(false); } else { // show the noNewsLinksDiv haveNoLinks.setVisible(true); // hide the haveLinks haveLinks.setVisible(false); } if (motdMode != MOTD_MODE_LIST || itemCount < 1) { motdDiv.setVisibilityAllowed(false); motdDiv.setVisible(false); } }
From source file:org.sakaiproject.dash.tool.panels.NewsLinksPanel.java
License:Educational Community License
protected void initPanel() { if (this.selectedNewsTab == null) { this.selectedNewsTab = TAB_ID_CURRENT; }/*from ww w . j a v a 2 s. c om*/ if (this.newsLinksDivId != null) { this.remove(newsLinksDivId); } ResourceLoader rl = new ResourceLoader("dash_entity"); //get list of items from db, wrapped in a dataprovider newsLinksProvider = new NewsLinksDataProvider(this.selectedNewsTab); final WebMarkupContainer newsLinksDiv = new WebMarkupContainer("newsLinksDiv"); newsLinksDiv.setOutputMarkupId(true); add(newsLinksDiv); this.newsLinksDivId = newsLinksDiv.getId(); newsLinksDiv.add(new Label("newsTitle", rl.getString("dash.news.title"))); AjaxLink<IModel<List<NewsLink>>> currentNewsLink = new AjaxLink<IModel<List<NewsLink>>>("link") { @Override public void onClick(AjaxRequestTarget target) { if (logger.isDebugEnabled()) { logger.debug("currentNewsLink onClick called"); } // set currentNewsTab to "current" selectedNewsTab = TAB_ID_CURRENT; // reset news dataview to show current stuff if (newsLinksProvider == null) { newsLinksProvider = new NewsLinksDataProvider(selectedNewsTab); } else { newsLinksProvider.setNewsTab(selectedNewsTab); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/news/" + selectedNewsTab); } initPanel(); // refresh newsLinksDiv target.addComponent(NewsLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } }; currentNewsLink.add(new Label("label", rl.getString("dash.news.current"))); WebMarkupContainer currentNewsTab = new WebMarkupContainer("currentNewsTab"); if (selectedNewsTab == null || TAB_ID_CURRENT.equalsIgnoreCase(selectedNewsTab)) { currentNewsTab.add(new SimpleAttributeModifier("class", "activeTab")); } currentNewsTab.add(currentNewsLink); newsLinksDiv.add(currentNewsTab); AjaxLink<IModel<List<NewsLink>>> starredNewsLink = new AjaxLink<IModel<List<NewsLink>>>("link") { @Override public void onClick(AjaxRequestTarget target) { if (logger.isDebugEnabled()) { logger.debug("starredNewsLink onClick called"); } // set currentNewsTab to "starred" selectedNewsTab = TAB_ID_STARRED; // reset news dataview to show starred stuff if (newsLinksProvider == null) { newsLinksProvider = new NewsLinksDataProvider(selectedNewsTab); } else { newsLinksProvider.setNewsTab(selectedNewsTab); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/news/" + selectedNewsTab); } initPanel(); // refresh newsLinksDiv target.addComponent(NewsLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } }; starredNewsLink.add(new Label("label", rl.getString("dash.news.starred"))); WebMarkupContainer starredNewsTab = new WebMarkupContainer("starredNewsTab"); if (selectedNewsTab != null && TAB_ID_STARRED.equalsIgnoreCase(selectedNewsTab)) { starredNewsTab.add(new SimpleAttributeModifier("class", "activeTab")); } starredNewsTab.add(starredNewsLink); newsLinksDiv.add(starredNewsTab); AjaxLink<IModel<List<NewsLink>>> hiddenNewsLink = new AjaxLink<IModel<List<NewsLink>>>("link") { @Override public void onClick(AjaxRequestTarget target) { if (logger.isDebugEnabled()) { logger.debug("hiddenNewsLink onClick called"); } // set currentNewsTab to "hidden" selectedNewsTab = TAB_ID_HIDDEN; // reset news dataview to show hidden stuff if (newsLinksProvider == null) { newsLinksProvider = new NewsLinksDataProvider(selectedNewsTab); } else { newsLinksProvider.setNewsTab(selectedNewsTab); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_TABBING, "/dashboard/news/" + selectedNewsTab); } initPanel(); // refresh newsLinksDiv target.addComponent(NewsLinksPanel.this); target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } }; hiddenNewsLink.add(new Label("label", rl.getString("dash.news.hidden"))); WebMarkupContainer hiddenNewsTab = new WebMarkupContainer("hiddenNewsTab"); if (selectedNewsTab != null && TAB_ID_HIDDEN.equalsIgnoreCase(selectedNewsTab)) { hiddenNewsTab.add(new SimpleAttributeModifier("class", "activeTab")); } hiddenNewsTab.add(hiddenNewsLink); newsLinksDiv.add(hiddenNewsTab); WebMarkupContainer haveLinks = new WebMarkupContainer("haveLinks"); newsLinksDiv.add(haveLinks); //present the news data in a table final DataView<NewsLink> newsDataView = new DataView<NewsLink>("newsLinks", newsLinksProvider) { @Override public void populateItem(final Item item) { item.setOutputMarkupId(true); ResourceLoader rl = new ResourceLoader("dash_entity"); final NewsLink nLink = (NewsLink) item.getModelObject(); final NewsItem nItem = nLink.getNewsItem(); if (logger.isDebugEnabled()) { logger.debug(this + "populateItem() item: " + item); } boolean hideActionLinks = nItem.getItemCount() > 1; String itemType = nItem.getSourceType().getIdentifier(); item.add(new Label("itemType", itemType)); item.add(new Label("itemCount", Integer.toString(nItem.getItemCount()))); item.add(new Label("entityReference", nItem.getEntityReference())); String siteTitle = nItem.getContext().getContextTitle(); StringBuilder errorMessages = new StringBuilder(); String title = FormattedText.processFormattedText(nItem.getTitle(), errorMessages, true, true); if (errorMessages != null && errorMessages.length() > 0) { logger.warn("Error(s) encountered while processing newsItem title:\n" + errorMessages); } ExternalLink itemLink = new ExternalLink("itemLink", "#itemEvent"); itemLink.add(new Label("itemTitle", title)); itemLink.add(new Label("itemClick", rl.getString("dash.details"))); item.add(itemLink); Image icon = new Image("icon"); icon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { // TODO Auto-generated method stub return dashboardCommonLogic.getEntityIconUrl(nItem.getSourceType().getIdentifier(), nItem.getSubtype()); } })); item.add(icon); String newsItemLabel = dashboardCommonLogic.getString(nItem.getNewsTimeLabelKey(), "", itemType); if (newsItemLabel == null || hideActionLinks) { newsItemLabel = ""; } Label itemLabel = new Label("itemLabel", newsItemLabel); if (!"".equals(newsItemLabel)) { itemLabel.add(new SimpleAttributeModifier("class", "itemLabel")); } item.add(itemLabel); item.add(new ExternalLink("siteLink", nItem.getContext().getContextUrl(), siteTitle)); Component timeLabel = new Label("newsTime", DateUtil.getNewsTimeString(nItem.getNewsTime())); timeLabel.add(new AttributeModifier("title", true, new AbstractReadOnlyModel() { @Override public Object getObject() { // TODO Auto-generated method stub return DateUtil.getFullDateString(nItem.getNewsTime()); } })); item.add(timeLabel); if (nLink.isSticky()) { AjaxLink<NewsLink> starringAction = new AjaxLink<NewsLink>("starringAction") { protected long newsItemId = nItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("starringAction onClick() called -- unstar "); // need to keep one item logger.debug(newsItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.unkeepNewsItem(sakaiUserId, newsItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_UNSTAR, "/dashboard/news/" + selectedNewsTab + "/" + newsItemId); // if success adjust UI, else report failure? if (success) { target.addComponent(NewsLinksPanel.this); if (TAB_ID_STARRED.equals(selectedNewsTab)) { ResourceLoader rl = new ResourceLoader("dash_entity"); NewsItem changedItem = dashboardCommonLogic.getNewsItem(newsItemId); JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig); String jsonStr = jsonHelper.getJsonObjectFromNewsItem(changedItem).toString(); String javascript = "reportSuccess('" + rl.getString("dash.ajax.unstar.success") + "'," + jsonStr + ",'" + "not-sure-about-url-yet" + "');"; target.appendJavascript(javascript); } target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } } }; starringAction.setDefaultModel(item.getModel()); item.add(starringAction); Image starringActionIcon = new Image("starringActionIcon"); starringActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_UNSTAR); } })); starringActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.unstar"); } })); starringAction.add(starringActionIcon); //starringAction.add(new Label("starringActionLabel", "Unstar")); if (nLink.isHidden() || hideActionLinks) { starringAction.setVisible(false); starringAction.setVisibilityAllowed(false); } } else { AjaxLink<NewsLink> starringAction = new AjaxLink<NewsLink>("starringAction") { protected long newsItemId = nItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("starringAction onClick() called -- star "); // need to keep one item logger.debug(newsItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.keepNewsItem(sakaiUserId, newsItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_STAR, "/dashboard/news/" + selectedNewsTab + "/" + newsItemId); // if success adjust UI, else report failure? if (success) { target.addComponent(NewsLinksPanel.this); //String javascript = "alert('success. (" + thisRow.getMarkupId() + ")');"; //target.appendJavascript(javascript ); } target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } }; Image starringActionIcon = new Image("starringActionIcon"); starringActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_STAR); } })); starringActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.star"); } })); starringAction.add(starringActionIcon); // starringAction.add(new Label("starringActionLabel", "Star")); item.add(starringAction); if (nLink.isHidden() || hideActionLinks) { starringAction.setVisible(false); starringAction.setVisibilityAllowed(false); } } if (nLink.isHidden()) { AjaxLink<NewsLink> hidingAction = new AjaxLink<NewsLink>("hidingAction") { protected long newsItemId = nItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("hidingAction onClick() called -- show"); // need to trash one item logger.debug(newsItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.unhideNewsItem(sakaiUserId, newsItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_SHOW, "/dashboard/news/" + selectedNewsTab + "/" + newsItemId); // if success adjust UI, else report failure? if (success) { ResourceLoader rl = new ResourceLoader("dash_entity"); target.addComponent(NewsLinksPanel.this); NewsItem changedItem = dashboardCommonLogic.getNewsItem(newsItemId); JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig); String jsonStr = jsonHelper.getJsonObjectFromNewsItem(changedItem).toString(); String javascript = "reportSuccess('" + rl.getString("dash.ajax.show.success") + "'," + jsonStr + ",'" + "not-sure-about-url-yet" + "');"; target.appendJavascript(javascript); } target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } }; hidingAction.setDefaultModel(item.getModel()); //actionHideThisLink.setModelObject(nItem); item.add(hidingAction); Image hidingActionIcon = new Image("hidingActionIcon"); hidingActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_SHOW); } })); hidingActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.show"); } })); hidingAction.add(hidingActionIcon); //hidingAction.add(new Label("hidingActionLabel", "Show")); if (nLink.isSticky() || hideActionLinks) { hidingAction.setVisible(false); hidingAction.setVisibilityAllowed(false); } } else { AjaxLink<NewsLink> hidingAction = new AjaxLink<NewsLink>("hidingAction") { protected long newsItemId = nItem.getId(); protected Component thisRow = item; @Override public void onClick(AjaxRequestTarget target) { logger.debug("hidingAction onClick() called -- hide"); // need to trash one item logger.debug(newsItemId); //logger.debug(this.getModelObject()); String sakaiUserId = sakaiProxy.getCurrentUserId(); boolean success = dashboardCommonLogic.hideNewsItem(sakaiUserId, newsItemId); dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_HIDE, "/dashboard/news/" + selectedNewsTab + "/" + newsItemId); // if success adjust UI, else report failure? if (success) { ResourceLoader rl = new ResourceLoader("dash_entity"); target.addComponent(NewsLinksPanel.this); NewsItem changedItem = dashboardCommonLogic.getNewsItem(newsItemId); JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig); String jsonStr = jsonHelper.getJsonObjectFromNewsItem(changedItem).toString(); String javascript = "reportSuccess('" + rl.getString("dash.ajax.hide.success") + "'," + jsonStr + ",'" + "not-sure-about-url-yet" + "');"; target.appendJavascript(javascript); } target.appendJavascript("resizeFrame('grow');"); target.appendJavascript("$('#newsPanel').focus();"); } }; hidingAction.setDefaultModel(item.getModel()); //actionHideThisLink.setModelObject(nItem); item.add(hidingAction); Image hidingActionIcon = new Image("hidingActionIcon"); hidingActionIcon.add(new AttributeModifier("src", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return dashboardConfig.getActionIcon(dashboardConfig.ACTION_HIDE); } })); hidingActionIcon.add(new AttributeModifier("alt", true, new AbstractReadOnlyModel() { @Override public Object getObject() { ResourceLoader rl = new ResourceLoader("dash_entity"); return rl.getString("dash.hide"); } })); hidingAction.add(hidingActionIcon); //hidingAction.add(new Label("hidingActionLabel", "Hide")); if (nLink.isSticky() || hideActionLinks) { hidingAction.setVisible(false); hidingAction.setVisibilityAllowed(false); } } } }; newsDataView.setItemReuseStrategy(new DefaultItemReuseStrategy()); newsDataView.setItemsPerPage(pageSize); haveLinks.add(newsDataView); IPagingLabelProvider pagingLabelProvider = new IPagingLabelProvider() { public String getPageLabel(int page) { ResourceLoader rl = new ResourceLoader("dash_entity"); int itemCount = 0; String pagerStatus = ""; if (newsDataView != null) { int first = 0; int last = 0; itemCount = newsDataView.getItemCount(); int pageSize = newsDataView.getItemsPerPage(); if (itemCount > pageSize) { //int page = calendarDataView.getCurrentPage(); first = page * pageSize + 1; last = Math.min(itemCount, (page + 1) * pageSize); if (first == last) { pagerStatus = Integer.toString(first); } else { pagerStatus = rl.getFormattedMessage("dash.pager.range", new Object[] { new Integer(first), new Integer(last) }); } } else if (itemCount > 1) { pagerStatus = rl.getFormattedMessage("dash.pager.range", new Object[] { new Integer(1), new Integer(itemCount) }); } else if (itemCount > 0) { pagerStatus = "1"; } else { pagerStatus = "0"; } } if (logger.isDebugEnabled()) { logger.debug("getPageLabel() " + pagerStatus); } return pagerStatus; } }; //add a pager to our table, only visible if we have more than 5 items newsLinksDiv.add(new PagingNavigator("newsNavigator", newsDataView, pagingLabelProvider) { protected int currentPage = 1; @Override public boolean isVisible() { if (newsLinksProvider.size() > pageSize) { return true; } return false; } @Override public void onBeforeRender() { if (this.getPageable().getCurrentPage() != currentPage) { dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_PAGING, "/dashboard/news/" + selectedNewsTab); currentPage = this.getPageable().getCurrentPage(); } //renderItemCounter(newsLinksDiv, newsDataView); //clear the feedback panel messages //clearFeedback(feedbackPanel); super.onBeforeRender(); } }); WebMarkupContainer haveNoLinks = new WebMarkupContainer("haveNoLinks"); newsLinksDiv.add(haveNoLinks); String noNewsLinksLabel = null; if (TAB_ID_CURRENT.equals(selectedNewsTab)) { noNewsLinksLabel = rl.getString("dash.news.nocurrent"); } else if (TAB_ID_STARRED.equals(selectedNewsTab)) { noNewsLinksLabel = rl.getString("dash.news.nostarred"); } else if (TAB_ID_HIDDEN.equals(selectedNewsTab)) { noNewsLinksLabel = rl.getString("dash.news.nohidden"); } haveNoLinks.add(new Label("message", noNewsLinksLabel)); //renderItemCounter(newsLinksDiv, newsDataView); int itemCount = 0; if (newsDataView != null) { itemCount = newsDataView.getItemCount(); } if (itemCount > 0) { // show the haveLinks haveLinks.setVisible(true); // hide the noNewsLinksDiv haveNoLinks.setVisible(false); } else { // show the noNewsLinksDiv haveNoLinks.setVisible(true); // hide the haveLinks haveLinks.setVisible(false); } }