001/* An interface for module initializations. 002 003/** 004 * '$Author: barseghian $' 005 * '$Date: 2013-01-15 21:33:01 +0000 (Tue, 15 Jan 2013) $' 006 * '$Revision: 31328 $' 007 * 008 * For Details: 009 * http://www.kepler-project.org 010 * 011 * Copyright (c) 2010 The Regents of the 012 * University of California. All rights reserved. Permission is hereby granted, 013 * without written agreement and without license or royalty fees, to use, copy, 014 * modify, and distribute this software and its documentation for any purpose, 015 * provided that the above copyright notice and the following two paragraphs 016 * appear in all copies of this software. IN NO EVENT SHALL THE UNIVERSITY OF 017 * CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, 018 * OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS 019 * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE 020 * POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY 021 * DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 022 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE 023 * SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF 024 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, 025 * ENHANCEMENTS, OR MODIFICATIONS. 026 */ 027 028package org.kepler.module.workflowrunmanager; 029 030import java.util.List; 031 032import org.kepler.build.modules.Module; 033import org.kepler.configuration.ConfigurationManager; 034import org.kepler.configuration.ConfigurationProperty; 035import org.kepler.gui.KeplerGraphFrame; 036import org.kepler.gui.KeplerGraphFrameUpdater; 037import org.kepler.module.ModuleInitializer; 038import org.kepler.util.ProvenanceStore; 039import org.kepler.workflowrunmanager.WRMDefaults; 040import org.kepler.workflowrunmanager.WorkflowRunManager; 041import org.kepler.workflowrunmanager.WorkflowRunManagerManager; 042 043/** 044 * Initialize the workflow-run-manager module 045 * 046 * @author Chad Berkley 047 * @version $Id: Initialize.java 31328 2013-01-15 21:33:01Z barseghian $ 048 */ 049 050public class Initialize implements KeplerGraphFrameUpdater, ModuleInitializer { 051 052 /** 053 * Initialize the module 054 */ 055 public void initializeModule() { 056 057 // add ourself as an updater so we can add the view selector 058 KeplerGraphFrame.addUpdater(this); 059 060 ConfigurationManager cm = ConfigurationManager.getInstance(); 061 062 Module coreModule = ConfigurationManager.getModule("core"); 063 Module commonModule = ConfigurationManager.getModule("common"); 064 Module wrmModule = ConfigurationManager 065 .getModule(WRMDefaults.moduleName); 066 Module guiModule = ConfigurationManager.getModule("gui"); 067 068 ConfigurationProperty coreProperty = cm.getProperty(coreModule); 069 ConfigurationProperty commonProperty = cm.getProperty(commonModule); 070 ConfigurationProperty wrmProperty = cm.getProperty(wrmModule); 071 ConfigurationProperty guiProperty = cm.getProperty(guiModule); 072 073 // we need to override the common tab pane properties with the ones from 074 // wrm 075 ConfigurationProperty commonViewPaneTabPanesProp = commonProperty 076 .getProperty("viewPaneTabPanes"); 077 ConfigurationProperty wrmViewPaneTabPanesProp = wrmProperty 078 .getProperty("viewPaneTabPanes"); 079 commonProperty.overrideProperty(commonViewPaneTabPanesProp, 080 wrmViewPaneTabPanesProp, true); 081 082 ConfigurationProperty commonCanvasViewPaneLocationProp = commonProperty 083 .getProperty("canvasViewPaneLocation"); 084 ConfigurationProperty wrmCanvasViewPaneLocationProp = wrmProperty 085 .getProperty("canvasViewPaneLocation"); 086 commonProperty.overrideProperty(commonCanvasViewPaneLocationProp, 087 wrmCanvasViewPaneLocationProp, true); 088 089 // override the viewPaneFactory 090 ConfigurationProperty guiViewPaneFactory = guiProperty 091 .getProperty("viewPaneFactory"); 092 ConfigurationProperty wrmViewPaneFactory = wrmProperty 093 .getProperty("viewPaneFactory"); 094 guiProperty.overrideProperty(guiViewPaneFactory, wrmViewPaneFactory, 095 true); 096 097 // override the tabPaneFactory 098 ConfigurationProperty guiTabPaneFactory = guiProperty 099 .getProperty("tabPaneFactory"); 100 ConfigurationProperty wrmTabPaneFactory = wrmProperty 101 .getProperty("tabPaneFactory"); 102 guiProperty 103 .overrideProperty(guiTabPaneFactory, wrmTabPaneFactory, true); 104 105 System.out.println("common tabpane configuration overridden by workflow-run-manager"); 106 107 // add the WorkflowRun KAREntryHandler to core 108 ConfigurationProperty kehfWRM = wrmProperty 109 .getProperty("karEntryHandlerFactory"); 110 ConfigurationProperty kehfCore = coreProperty 111 .getProperty("karEntryHandlerFactory"); 112 113 List<ConfigurationProperty> handlers = kehfWRM 114 .getProperties("karHandler"); 115 for (ConfigurationProperty handler : handlers) { 116 try { 117 118 List<ConfigurationProperty> l = kehfCore.getProperties(); 119 boolean add = true; 120 for (int i = 0; i < l.size(); i++) { 121 ConfigurationProperty cp = (ConfigurationProperty) l.get(i); 122 String name = cp.getProperty("name").getValue(); 123 if (name.equals(handler.getProperty("name").getValue())) { 124 add = false; 125 } 126 } 127 128 if (add) { 129 kehfCore.addProperty(handler); 130 } 131 } catch (Exception e) { 132 e.printStackTrace(); 133 } 134 } 135 136 // connect wrm to default prov store here instead of in WRMPanel initializeTab 137 // so can work gui-less 138 WorkflowRunManagerManager wrmm = WorkflowRunManagerManager.getInstance(); 139 ProvenanceStore provenanceStore = new ProvenanceStore(WRMDefaults.provenanceDefaultsProperty); 140 WorkflowRunManager workflowRunManager = wrmm.getWRM(null, provenanceStore); 141 workflowRunManager.connect(); 142 143 } 144 145 /** Compares this object with the specified object for order. */ 146 public int compareTo(KeplerGraphFrameUpdater o) 147 { 148 /// always return greater than provenance 149 ///if (o instanceof org.kepler.module.provenance.Initialize) { 150 /// return 1; 151 ///} 152 ///return 0; 153 154 // we currently like view menu always on far-right 155 // setting this high: 156 return 3; 157 } 158 159 /** Update the components. */ 160 public void updateFrameComponents(KeplerGraphFrame.Components components) 161 { 162 163 } 164 165 166 public void dispose(KeplerGraphFrame frame) { 167 } 168 169}