// Copyright (C) 2013 GerritForge www.gerritforge.com // // 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. package mobi.jenkinsci.ci.model; import java.io.IOException; import java.util.List; import mobi.jenkinsci.model.HeaderNode; import mobi.jenkinsci.model.ItemNode; import mobi.jenkinsci.model.Layout; import mobi.jenkinsci.plugin.Plugin; import com.google.common.base.Strings; import com.google.gson.annotations.SerializedName; public class ViewList extends JenkinsItem { @SerializedName("views") private List<View> views; @SerializedName("primaryView") private View primaryView; public List<View> getViews() { return views; } public JenkinsItem getPrimaryView() { return primaryView; } public void setViews(final List<View> views) { this.views = views; } public void setPrimaryView(final View primaryView) { this.primaryView = primaryView; } @Override public ItemNode toAbstractNode(final String urlPrefix) throws IOException { final ItemNode result = new ItemNode(); result.setPath(path); result.setLayout(Layout.LIST); result.setVersion(ItemNode.API_VERSION); result.setTitle("Builds"); result.setIcon(result.getPath()+"?image=icons/views_wall.png"); for (final JenkinsItem view : views) { if (view.name.equals(primaryView.name)) { final HeaderNode header = new HeaderNode("Primary view"); final HeaderNode header2 = new HeaderNode("Other views"); result.addNode(0, header); result.addNode(1, view.toAbstractNode(urlPrefix)); result.addNode(2, header2); } else { result.addNode(view.toAbstractNode(urlPrefix)); } } result.setLeaf(true); return result; } @Override public JenkinsItem getSubItem(final Plugin plugin, final String subItemPath) throws IOException { final JenkinsItem subItem = super.getSubItem(plugin, subItemPath); if(Strings.isNullOrEmpty(subItemPath)) { return subItem; } final JenkinsItem viewDetails = client().getVewDetails(getHeadPath(subItemPath)); return viewDetails.getSubItem(plugin, getTailPath(subItemPath)); } }