Package fr.openwide.maven.artifact.notifier.web.application.artifact.component

Source Code of fr.openwide.maven.artifact.notifier.web.application.artifact.component.DeprecatedArtifactPanel

package fr.openwide.maven.artifact.notifier.web.application.artifact.component;

import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.ResourceModel;

import fr.openwide.core.wicket.markup.html.panel.GenericPanel;
import fr.openwide.core.wicket.more.model.BindingModel;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactDeprecationStatus;
import fr.openwide.maven.artifact.notifier.core.util.binding.Binding;
import fr.openwide.maven.artifact.notifier.web.application.artifact.page.ArtifactDescriptionPage;

public class DeprecatedArtifactPanel extends GenericPanel<Artifact> {

  private static final long serialVersionUID = -3067355181564265555L;

  public DeprecatedArtifactPanel(String id, IModel<? extends Artifact> model) {
    super(id, model);
   
    final IModel<Artifact> relatedArtifactModel = BindingModel.of(getModel(), Binding.artifact().relatedArtifact());
   
    WebMarkupContainer container = new WebMarkupContainer("deprecatedContainer") {
      private static final long serialVersionUID = 1L;

      @Override
      protected void onConfigure() {
        super.onConfigure();
        setVisible(ArtifactDeprecationStatus.DEPRECATED.equals(getModelObject().getDeprecationStatus()));
      }
    };
   
    container.add(new Label("deprecated", new ResourceModel("artifact.description.deprecated")));
   
    WebMarkupContainer relatedArtifactContainer = new WebMarkupContainer("relatedArtifactContainer") {
      private static final long serialVersionUID = 1L;

      @Override
      protected void onConfigure() {
        super.onConfigure();
        setVisible(relatedArtifactModel.getObject() != null);
      }
    };
    container.add(relatedArtifactContainer);
   
    Link<Void> relatedArtifactLink = ArtifactDescriptionPage.linkDescriptor(relatedArtifactModel).link("relatedArtifactLink");
    relatedArtifactLink.add(new Label("relatedArtifact", new LoadableDetachableModel<String>() {
      private static final long serialVersionUID = 1L;

      @Override
      protected String load() {
        Artifact relatedArtifact = relatedArtifactModel.getObject();
        if (relatedArtifact != null) {
          return relatedArtifact.getArtifactKey().getKey();
        }
        return null;
      }
    }));
    relatedArtifactContainer.add(relatedArtifactLink);
    add(container);
  }
}
TOP

Related Classes of fr.openwide.maven.artifact.notifier.web.application.artifact.component.DeprecatedArtifactPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.