01: /*
02: * Sun Public License Notice
03: *
04: * The contents of this file are subject to the Sun Public License
05: * Version 1.0 (the "License"). You may not use this file except in
06: * compliance with the License. A copy of the License is available at
07: * http://www.sun.com/
08: *
09: * The Original Code is NetBeans. The Initial Developer of the Original
10: * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
11: * Microsystems, Inc. All Rights Reserved.
12:
13: If you wish your version of this file to be governed by only the CDDL
14: or only the GPL Version 2, indicate your decision by adding
15: "[Contributor] elects to include this software in this distribution
16: under the [CDDL or GPL Version 2] license." If you do not indicate a
17: single choice of license, a recipient has the option to distribute
18: your version of this file under either the CDDL, the GPL Version 2 or
19: to extend the choice of license to its licensees as provided above.
20: However, if you add GPL Version 2 code and therefore, elected the GPL
21: Version 2 license, then the option applies only if the new code is
22: made subject to such option by the copyright holder.
23:
24: If you wish your version of this file to be governed by only the CDDL
25: or only the GPL Version 2, indicate your decision by adding
26: "[Contributor] elects to include this software in this distribution
27: under the [CDDL or GPL Version 2] license." If you do not indicate a
28: single choice of license, a recipient has the option to distribute
29: your version of this file under either the CDDL, the GPL Version 2 or
30: to extend the choice of license to its licensees as provided above.
31: However, if you add GPL Version 2 code and therefore, elected the GPL
32: Version 2 license, then the option applies only if the new code is
33: made subject to such option by the copyright holder.
34: */
35:
36: package org.netbeans.modules.etl.ui;
37:
38: import org.openide.loaders.DataObject;
39: import org.openide.util.Lookup;
40: import org.openide.windows.TopComponent;
41:
42: /**
43: * This Class uses the Lookup to find the data object corresponding
44: * to the active top component.
45: * @author ks161616
46: */
47: public class DataObjectProvider {
48:
49: /* singleton instance of the top component provider */
50: private static DataObjectProvider instance;
51:
52: public static ETLDataObject activeDataObject;
53:
54: /**
55: * Creates a new instance of DataObjectProvider
56: */
57: private DataObjectProvider() {
58: }
59:
60: /**
61: * Gets the singleton instance of the provider.
62: *
63: */
64: public static DataObjectProvider getProvider() {
65: if (instance == null) {
66: instance = new DataObjectProvider();
67: }
68: return instance;
69: }
70:
71: /**
72: * Gets the active ETL data object.
73: *
74: */
75: public ETLDataObject getActiveDataObject() {
76: Object obj = TopComponent.getRegistry().getActivated()
77: .getLookup().lookup(DataObject.class);
78: if (obj instanceof ETLDataObject) {
79: activeDataObject = (ETLDataObject) obj;
80: }
81: // If no active data object is found, returns the previously active data object.
82: // check if any other ways exists to do this.
83: return activeDataObject;
84: }
85: }
|