wiki-convert/wiki-asciidoc/DevFaqOWTabEmbedding.asciidoc (107 lines of code) (raw):

// // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you 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. // = DevFaqOWTabEmbedding :jbake-type: wiki :jbake-tags: wiki, devfaq, needsreview :jbake-status: published == How do I embed output window tab to another component? You have to create `IOContainer` which provides access (for `IOProvider`) to your component where you want to embed OW tab (IO tab). Then you need to pass `IOContainer` instance to `IOProvider.getIO(String name, Actionlink:_.html[ ] actions, IOContainer ioContainer)`. `IOContainer` is created by `IOContainer.create(IOContainer.Provider)`. The following code demonstrates how to add OW to custom TopComponent.: [source,java] ---- IOContainer ioc = IOContainer.create(new IOC()); InputOutput io = IOProvider.getDefault().getIO("test", new Action[0], ioc); io.getOut().println("Hi there"); io.select(); // implement IOContainer.Provider in TopComponent where OW tab will be added class IOC extends TopComponent implements IOContainer.Provider { JComponent ioComp; CallBacks ioCb; public IOC() { setLayout(new BorderLayout()); setDisplayName("Test"); } @Override public int getPersistenceType() { return PERSISTENCE_NEVER; } public void add(JComponent comp, CallBacks cb) { if (ioComp != null) { remove(ioComp); if (ioCb != null) { ioCb.closed(); } } ioComp = comp; ioCb = cb; add(comp); validate(); } public JComponent getSelected() { return ioComp; } boolean activated; public boolean isActivated() { return activated; } @Override protected void componentActivated() { super.componentActivated(); activated = true; if (ioCb != null) { ioCb.activated(); } } @Override protected void componentDeactivated() { super.componentDeactivated(); activated = false; if (ioCb != null) { ioCb.deactivated(); } } public boolean isCloseable(JComponent comp) { return false; } public void remove(JComponent comp) { if (comp == ioComp) { ioComp = null; ioCb = null; } } public void select(JComponent comp) { } public void setIcon(JComponent comp, Icon icon) { } public void setTitle(JComponent comp, String name) { } public void setToolTipText(JComponent comp, String text) { } public void setToolbarActions(JComponent comp, Action[] toolbarActions) { } } ---- <hr/> Applies to: NetBeans 6.7 === Apache Migration Information The content in this page was kindly donated by Oracle Corp. to the Apache Software Foundation. This page was exported from link:http://wiki.netbeans.org/DevFaqOWTabEmbedding[http://wiki.netbeans.org/DevFaqOWTabEmbedding] , that was last modified by NetBeans user Admin on 2009-11-06T15:58:04Z. *NOTE:* This document was automatically converted to the AsciiDoc format on 2018-01-10, and needs to be reviewed.