// Path: centrepoint/modules/model/src/main/java/com/effectivemaven/centrepoint/model/plugin/PanelItem.java
// public class PanelItem
// {
//     /** The label to display for the text or link. */
//     private final String name;
// 
//     /** The optional URL to link to. */
//     private final String url;
// 
//     public PanelItem( String name )
//     {
//         this.name = name;
//         this.url = null;
//     }
// 
//     public PanelItem( String name, String url )
//     {
//         this.name = name;
//         this.url = url;
//     }
// 
//     public String getName()
//     {
//         return name;
//     }
// 
//     public String getUrl()
//     {
//         return url;
//     }
// }
// 
// Path: centrepoint/modules/model/src/main/java/com/effectivemaven/centrepoint/model/plugin/PluginManager.java
// public interface PluginManager
// {
//     /**
//      * Retrieve all plugins available (whether they are configurable or not).
//      * 
//      * @return the list of plugins
//      */
//     Collection<PanelPlugin> getPlugins();
// 
//     /**
//      * Retrieve all plugins available that take configuration options.
//      * 
//      * @return the list of configurable plugins
//      */
//     Collection<ConfigurablePanel<? extends ExtensionModel>> getConfigurablePlugins();
// 
//     /**
//      * Retrieve a specific configurable plugin, based on the ID of the configuration model.
//      * 
//      * @param id the ID of the plugin's configuration model, which should match the value of
//      *            {@link ConfigurablePanel#getId()}
//      * @return the plugin, or <tt>null</tt> if not found
//      */
//     ConfigurablePanel<? extends ExtensionModel> getConfigurablePlugin( String id );
// }
// 
// Path: centrepoint/modules/store-api/src/main/java/com/effectivemaven/centrepoint/store/ProjectStore.java
// public interface ProjectStore
// {
//     /**
//      * Retrieve all projects in their entirety.
//      * @return the project list
//      */
//     Collection<Project> getAllProjects();
// 
//     /**
//      * Retrieve a specific project.
//      * @param id the identifier of the project to retrieve
//      * @return the project, or <code>null</code> if not found
//      */
//     Project getProjectById( String id );
// 
//     /**
//      * Store the project. 
//      * @param project the project to store
//      */
//     void store( Project project );
// }


import com.effectivemaven.centrepoint.store.ProjectStore;
import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.basic.MultiLineLabel;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.protocol.http.servlet.AbortWithHttpStatusException;
import com.effectivemaven.centrepoint.model.MavenCoordinates;
import com.effectivemaven.centrepoint.model.Project;
import com.effectivemaven.centrepoint.model.plugin.PanelItem;
import com.effectivemaven.centrepoint.model.plugin.PanelPlugin;
import com.effectivemaven.centrepoint.model.plugin.PluginManager;
package com.effectivemaven.centrepoint.web;

/**
 * Copyright 2009
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */




/**
 * Web page to display information and other panels about a given project.
 */
public class ViewProjectPage
    extends TemplatePage
{
    @Inject
    private ProjectStore projectStore;

    @Inject
// Path: centrepoint/modules/model/src/main/java/com/effectivemaven/centrepoint/model/plugin/PanelItem.java
// public class PanelItem
// {
//     /** The label to display for the text or link. */
//     private final String name;
// 
//     /** The optional URL to link to. */
//     private final String url;
// 
//     public PanelItem( String name )
//     {
//         this.name = name;
//         this.url = null;
//     }
// 
//     public PanelItem( String name, String url )
//     {
//         this.name = name;
//         this.url = url;
//     }
// 
//     public String getName()
//     {
//         return name;
//     }
// 
//     public String getUrl()
//     {
//         return url;
//     }
// }
// 
// Path: centrepoint/modules/model/src/main/java/com/effectivemaven/centrepoint/model/plugin/PluginManager.java
// public interface PluginManager
// {
//     /**
//      * Retrieve all plugins available (whether they are configurable or not).
//      * 
//      * @return the list of plugins
//      */
//     Collection<PanelPlugin> getPlugins();
// 
//     /**
//      * Retrieve all plugins available that take configuration options.
//      * 
//      * @return the list of configurable plugins
//      */
//     Collection<ConfigurablePanel<? extends ExtensionModel>> getConfigurablePlugins();
// 
//     /**
//      * Retrieve a specific configurable plugin, based on the ID of the configuration model.
//      * 
//      * @param id the ID of the plugin's configuration model, which should match the value of
//      *            {@link ConfigurablePanel#getId()}
//      * @return the plugin, or <tt>null</tt> if not found
//      */
//     ConfigurablePanel<? extends ExtensionModel> getConfigurablePlugin( String id );
// }
// 
// Path: centrepoint/modules/store-api/src/main/java/com/effectivemaven/centrepoint/store/ProjectStore.java
// public interface ProjectStore
// {
//     /**
//      * Retrieve all projects in their entirety.
//      * @return the project list
//      */
//     Collection<Project> getAllProjects();
// 
//     /**
//      * Retrieve a specific project.
//      * @param id the identifier of the project to retrieve
//      * @return the project, or <code>null</code> if not found
//      */
//     Project getProjectById( String id );
// 
//     /**
//      * Store the project. 
//      * @param project the project to store
//      */
//     void store( Project project );
// }


// Path: centrepoint/modules/webapp/src/main/java/com/effectivemaven/centrepoint/web/ViewProjectPage.java
import com.effectivemaven.centrepoint.store.ProjectStore;
import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.basic.MultiLineLabel;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.protocol.http.servlet.AbortWithHttpStatusException;
import com.effectivemaven.centrepoint.model.MavenCoordinates;
import com.effectivemaven.centrepoint.model.Project;
import com.effectivemaven.centrepoint.model.plugin.PanelItem;
import com.effectivemaven.centrepoint.model.plugin.PanelPlugin;
import com.effectivemaven.centrepoint.model.plugin.PluginManager;

package com.effectivemaven.centrepoint.web;

/**
 * Copyright 2009
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */




/**
 * Web page to display information and other panels about a given project.
 */
public class ViewProjectPage
    extends TemplatePage
{
    @Inject
    private ProjectStore projectStore;

    @Inject
    private PluginManager pluginManager;