/******************************************************************************* * Mission Control Technologies, Copyright (c) 2009-2012, United States Government * as represented by the Administrator of the National Aeronautics and Space * Administration. All rights reserved. * * The MCT platform is 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. * * MCT includes source code licensed under additional open source licenses. See * the MCT Open Source Licenses file included with this distribution or the About * MCT Licenses dialog available at runtime from the MCT Help menu for additional * information. *******************************************************************************/ package org.acme.example.component; import gov.nasa.arc.mct.policy.PolicyInfo; import gov.nasa.arc.mct.services.component.AbstractComponentProvider; import gov.nasa.arc.mct.services.component.ViewInfo; import gov.nasa.arc.mct.services.component.ViewType; import java.util.Arrays; import java.util.Collection; import java.util.ResourceBundle; import org.acme.example.policy.MultiColViewPolicy; import org.acme.example.view.MultiColView; public class MultiColComponentProvider extends AbstractComponentProvider { // use a resource bundle for strings to enable localization in the future if required private static ResourceBundle bundle = ResourceBundle.getBundle("MultiColResourceBundle"); /* Our Views associated with the MultiColumn plug-in: (from the getViews method) MCT knows that the class 'MultiColView' is providing * visualizations * * ViewType.OBJECT is for a view that can be displayed in the (MCT) Inspector View * ViewType.EMBEDDED is for a view that can be displayed in another view. We have this so we can put MercatorProjections * within a (MCT) Canvas View */ private static final Collection<ViewInfo> VIEWS = Arrays.asList( new ViewInfo(MultiColView.class, bundle.getString("MultiColViewName"), ViewType.OBJECT), new ViewInfo(MultiColView.class, bundle.getString("MultiColViewName"), ViewType.EMBEDDED) ); /* Our policies associated with this plug-in: here we tell MCT that the class 'MultiColViewPolicy' * is handling the policies for the MultiColumn plug-in * */ private static final Collection<PolicyInfo> POLICIES = Arrays.asList( new PolicyInfo(PolicyInfo.CategoryType.FILTER_VIEW_ROLE.getKey(), MultiColViewPolicy.class) ); /* * Here is where MCT talks to our plug-in: our plug-in tells MCT * what views are associated with this plug-in. */ @Override public Collection<ViewInfo> getViews(String componentTypeId) { return VIEWS; } /* * Here is where MCT learns of the polices associated with this plug-in */ @Override public Collection<PolicyInfo> getPolicyInfos() { return POLICIES; } }