Files
loongoffice/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java
Pedro Giffuni 19c4d8d2fb Many spelling fixes: directories h* - p*.
Attempt to clean up most but certainly not all the spelling
mistakes that found home in OpenOffice through decades. We
could probably blame the international nature of the code but
it is somewhat shameful that this wasn't done  before.

(cherry picked from commit 11a1ff6144521aeabb0c6db25c89a2ac31bedee0)

Conflicts:
	external/libxmlsec/xmlsec1-customkeymanage.patch
	hwpfilter/source/hwpeq.cxx
	icc/README
	icu/createmak.pl
	idl/source/objects/object.cxx
	idlc/inc/idlc/errorhandler.hxx
	include/jvmfwk/framework.h
	include/oox/helper/propertyset.hxx
	instsetoo_native/inc_ure/windows/msi_templates/_Validat.idt
	javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/PrologueCtrl.java
	javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
	javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/SolarisInstaller.java
	javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java
	javainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/ProductDescription.java
	javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java
	javainstaller2/src/JavaSetup/org/openoffice/setup/Util/ExecuteProcess.java
	javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java
	javaunohelper/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.java
	jurt/com/sun/star/comp/servicemanager/ServiceManager.java
	jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx
	jvmfwk/source/elements.cxx
	jvmfwk/source/elements.hxx
	l10ntools/inc/wtranode.hxx
	l10ntools/inc/wtratree.hxx
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Convert.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ConverterException.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/FileMaker.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIWriter.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIandSDFMerger.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFReader.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFWriter.java
	l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFWriter.java
	l10ntools/scripts/localize.pl
	l10ntools/scripts/localize_old.pl
	l10ntools/source/cfgmerge.cxx
	l10ntools/source/export.cxx
	l10ntools/source/filter/merge/FCFGMerge.java
	l10ntools/source/filter/merge/Merger.java
	l10ntools/source/filter/utils/Cache.java
	l10ntools/source/filter/utils/ConfigHelper.java
	l10ntools/source/filter/utils/FileHelper.java
	l10ntools/source/filter/utils/XMLHelper.java
	l10ntools/source/merge.cxx
	l10ntools/source/tagtest.cxx
	l10ntools/source/xmlparse.cxx
	l10ntools/source/xrmmerge.cxx
	libtextcat/libtextcat-2.2.patch
	libxml2/libxml2-long-path.patch
	linguistic/inc/linguistic/misc.hxx
	linguistic/source/lngsvcmgr.cxx
	migrationanalysis/src/driver_docs/allstrings.ulf
	migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas
	migrationanalysis/src/driver_docs/sources/CommonMigrationAnalyser.bas
	migrationanalysis/src/driver_docs/sources/word/MigrationAnalyser.cls
	migrationanalysis/src/msokill/msokill.cpp
	migrationanalysis/src/wizard/Wizard.frm
	odk/examples/DevelopersGuide/Accessibility/EventHandler.java
	odk/examples/DevelopersGuide/Accessibility/EventListenerProxy.java
	odk/examples/DevelopersGuide/Accessibility/GraphicalDisplay.java
	odk/examples/DevelopersGuide/Forms/DataAwareness.java
	odk/examples/DevelopersGuide/Forms/KeyGenerator.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Interceptor.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/NativeView.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusListener.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusView.java
	odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/ViewContainer.java
	odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/AsciiReplaceFilter.java
	odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/FilterOptions.java
	odk/examples/cpp/complextoolbarcontrols/Makefile
	odk/setsdkenv_windows.template
	offapi/com/sun/star/accessibility/AccessibleEventId.idl
	offapi/com/sun/star/accessibility/AccessibleEventObject.idl
	offapi/com/sun/star/accessibility/AccessibleRelationType.idl
	offapi/com/sun/star/accessibility/XAccessible.idl
	offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl
	offapi/com/sun/star/accessibility/XAccessibleStateSet.idl
	offapi/com/sun/star/animations/Event.idl
	offapi/com/sun/star/animations/XAnimationNode.idl
	offapi/com/sun/star/awt/AccessibleListBoxList.idl
	offapi/com/sun/star/awt/XLayoutFlow.idl
	offapi/com/sun/star/awt/XMessageBoxFactory.idl
	offapi/com/sun/star/awt/XPopupMenu.idl
	offapi/com/sun/star/awt/grid/XGridColumn.idl
	offapi/com/sun/star/chart/ChartAxis.idl
	offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl
	offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl
	offapi/com/sun/star/configuration/AdministrationProvider.idl
	offapi/com/sun/star/configuration/ConfigurationRegistry.idl
	offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl
	offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl
	offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl
	offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl
	offapi/com/sun/star/document/DocumentInfo.idl
	offapi/com/sun/star/document/EmptyUndoStackException.idl
	offapi/com/sun/star/document/EventObject.idl
	offapi/com/sun/star/document/ExtendedTypeDetection.idl
	offapi/com/sun/star/document/ExtendedTypeDetectionFactory.idl
	offapi/com/sun/star/document/FilterFactory.idl
	offapi/com/sun/star/document/MediaDescriptor.idl
	offapi/com/sun/star/document/NoSuchFilterRequest.idl
	offapi/com/sun/star/document/OfficeDocument.idl
	offapi/com/sun/star/document/TypeDetection.idl
	offapi/com/sun/star/document/UndoContextNotClosedException.idl
	offapi/com/sun/star/document/XExtendedFilterDetection.idl
	offapi/com/sun/star/document/XFilter.idl
	offapi/com/sun/star/document/XInteractionFilterSelect.idl
	offapi/com/sun/star/document/XTypeDetection.idl
	offapi/com/sun/star/drawing/Hatch.idl
	offapi/com/sun/star/drawing/XDrawPages.idl
	offapi/com/sun/star/drawing/XShapeBinder.idl
	offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl
	offapi/com/sun/star/drawing/framework/XRelocatableResource.idl
	offapi/com/sun/star/embed/ElementModes.idl
	offapi/com/sun/star/embed/EntryInitModes.idl
	offapi/com/sun/star/embed/Storage.idl
	offapi/com/sun/star/embed/StorageFactory.idl
	offapi/com/sun/star/embed/StorageStream.idl
	offapi/com/sun/star/embed/XCommonEmbedPersist.idl
	offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl
	offapi/com/sun/star/embed/XEmbeddedClient.idl
	offapi/com/sun/star/embed/XInplaceClient.idl
	offapi/com/sun/star/embed/XInplaceObject.idl
	offapi/com/sun/star/embed/XInsertObjectDialog.idl
	offapi/com/sun/star/embed/XPersistanceHolder.idl
	offapi/com/sun/star/embed/XStorage.idl
	offapi/com/sun/star/embed/XTransactionBroadcaster.idl
	offapi/com/sun/star/embed/XTransactionListener.idl
	offapi/com/sun/star/form/FormComponents.idl
	offapi/com/sun/star/form/XSubmitListener.idl
	offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl
	offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl
	offapi/com/sun/star/form/component/DatabaseComboBox.idl
	offapi/com/sun/star/form/component/DatabaseFormattedField.idl
	offapi/com/sun/star/form/component/DatabasePatternField.idl
	offapi/com/sun/star/form/component/DatabaseTextField.idl
	offapi/com/sun/star/form/component/GridControl.idl
	offapi/com/sun/star/frame/Components.idl
	offapi/com/sun/star/frame/ContentHandler.idl
	offapi/com/sun/star/frame/ContentHandlerFactory.idl
	offapi/com/sun/star/frame/Desktop.idl
	offapi/com/sun/star/frame/DispatchDescriptor.idl
	offapi/com/sun/star/frame/DispatchProvider.idl
	offapi/com/sun/star/frame/DispatchRecorder.idl
	offapi/com/sun/star/frame/Frame.idl
	offapi/com/sun/star/frame/FrameActionEvent.idl
	offapi/com/sun/star/frame/FrameLoaderFactory.idl
	offapi/com/sun/star/frame/ProtocolHandler.idl
	offapi/com/sun/star/frame/XControlNotificationListener.idl
	offapi/com/sun/star/frame/XDesktop.idl
	offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl
	offapi/com/sun/star/frame/XDocumentTemplates.idl
	offapi/com/sun/star/frame/XFrame.idl
	offapi/com/sun/star/frame/XFrameLoader.idl
	offapi/com/sun/star/frame/XInterceptorInfo.idl
	offapi/com/sun/star/frame/XRecordableDispatch.idl
	offapi/com/sun/star/frame/XStatusbarController.idl
	offapi/com/sun/star/frame/XStorable2.idl
	offapi/com/sun/star/frame/XSynchronousDispatch.idl
	offapi/com/sun/star/frame/XTerminateListener2.idl
	offapi/com/sun/star/graphic/GraphicObject.idl
	offapi/com/sun/star/graphic/XGraphicObject.idl
	offapi/com/sun/star/inspection/XNumericControl.idl
	offapi/com/sun/star/inspection/XObjectInspectorModel.idl
	offapi/com/sun/star/inspection/XPropertyHandler.idl
	offapi/com/sun/star/installation/XProtocolHandlerCheck.idl
	offapi/com/sun/star/installation/protocols.idl
	offapi/com/sun/star/linguistic2/SpellFailure.idl
	offapi/com/sun/star/linguistic2/XLinguServiceManager.idl
	offapi/com/sun/star/mail/XMailServer.idl
	offapi/com/sun/star/mozilla/XPluginInstance.idl
	offapi/com/sun/star/mozilla/XPluginInstanceSyncPeer.idl
	offapi/com/sun/star/packages/zip/ZipIOException.idl
	offapi/com/sun/star/presentation/OutlineView.idl
	offapi/com/sun/star/presentation/XPresentation2.idl
	offapi/com/sun/star/presentation/XSlideShow.idl
	offapi/com/sun/star/presentation/XSlideShowController.idl
	offapi/com/sun/star/report/XFunction.idl
	offapi/com/sun/star/report/XFunctionsSupplier.idl
	offapi/com/sun/star/report/XReportComponent.idl
	offapi/com/sun/star/report/XReportDefinition.idl
	offapi/com/sun/star/report/meta/XFunctionManager.idl
	offapi/com/sun/star/resource/XStringResourcePersistence.idl
	offapi/com/sun/star/resource/XStringResourceWithLocation.idl
	offapi/com/sun/star/resource/XStringResourceWithStorage.idl
	offapi/com/sun/star/sdb/DataSettings.idl
	offapi/com/sun/star/sdb/ErrorCondition.idl
	offapi/com/sun/star/sdb/SQLContext.idl
	offapi/com/sun/star/sdb/Table.idl
	offapi/com/sun/star/sdb/XRowSetApproveListener.idl
	offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl
	offapi/com/sun/star/sdb/tools/XConnectionTools.idl
	offapi/com/sun/star/sdbc/DataType.idl
	offapi/com/sun/star/sdbc/XDatabaseMetaData.idl
	offapi/com/sun/star/sdbcx/Descriptor.idl
	offapi/com/sun/star/security/DocumentSignatureInformation.idl
	offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
	offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
	offapi/com/sun/star/sheet/DatabaseRange.idl
	offapi/com/sun/star/smarttags/XSmartTagAction.idl
	offapi/com/sun/star/table/AccessibleTableView.idl
	offapi/com/sun/star/table/CellProperties.idl
	offapi/com/sun/star/table/CellRangeListSource.idl
	offapi/com/sun/star/table/CellValueBinding.idl
	offapi/com/sun/star/table/XMergeableCellRange.idl
	offapi/com/sun/star/task/DocumentPasswordRequest.idl
	offapi/com/sun/star/task/JobExecutor.idl
	offapi/com/sun/star/task/MasterPasswordRequest.idl
	offapi/com/sun/star/task/PasswordRequest.idl
	offapi/com/sun/star/task/XJob.idl
	offapi/com/sun/star/text/AccessiblePageView.idl
	offapi/com/sun/star/text/AccessibleTextDocumentView.idl
	offapi/com/sun/star/text/LineNumberingProperties.idl
	offapi/com/sun/star/text/NumberingRules.idl
	offapi/com/sun/star/text/XRelativeTextContentRemove.idl
	offapi/com/sun/star/text/textfield/Database.idl
	offapi/com/sun/star/text/textfield/SetExpression.idl
	offapi/com/sun/star/text/textfield/docinfo/Description.idl
	offapi/com/sun/star/text/textfield/docinfo/Info0.idl
	offapi/com/sun/star/text/textfield/docinfo/Info1.idl
	offapi/com/sun/star/text/textfield/docinfo/Info2.idl
	offapi/com/sun/star/text/textfield/docinfo/Info3.idl
	offapi/com/sun/star/text/textfield/docinfo/Keywords.idl
	offapi/com/sun/star/text/textfield/docinfo/Revision.idl
	offapi/com/sun/star/text/textfield/docinfo/Subject.idl
	offapi/com/sun/star/text/textfield/docinfo/Title.idl
	offapi/com/sun/star/ucb/CommandFailedException.idl
	offapi/com/sun/star/ucb/Content.idl
	offapi/com/sun/star/ucb/ContentAction.idl
	offapi/com/sun/star/ucb/FetchError.idl
	offapi/com/sun/star/ucb/FetchResult.idl
	offapi/com/sun/star/ucb/HierarchyDataSource.idl
	offapi/com/sun/star/ucb/InteractiveFileIOException.idl
	offapi/com/sun/star/ucb/SearchRecursion.idl
	offapi/com/sun/star/ucb/UniversalContentBroker.idl
	offapi/com/sun/star/ucb/XAnyCompare.idl
	offapi/com/sun/star/ucb/XCachedContentResultSetFactory.idl
	offapi/com/sun/star/ucb/XCachedDynamicResultSetFactory.idl
	offapi/com/sun/star/ucb/XContentIdentifierMapping.idl
	offapi/com/sun/star/ui/UIElementType.idl
	offapi/com/sun/star/ui/dialogs/FilePicker.idl
	offapi/com/sun/star/ui/dialogs/FolderPicker.idl
	offapi/com/sun/star/util/PathSubstitution.idl
	offapi/com/sun/star/util/XChangesNotifier.idl
	offapi/com/sun/star/util/XCloseBroadcaster.idl
	offapi/com/sun/star/util/XCloseListener.idl
	offapi/com/sun/star/util/XCloseable.idl
	offapi/com/sun/star/util/XStringSubstitution.idl
	offapi/com/sun/star/util/XTextSearch.idl
	offapi/com/sun/star/util/XURLTransformer.idl
	offapi/com/sun/star/xforms/XModel.idl
	offapi/com/sun/star/xml/sax/XFastAttributeList.idl
	offapi/com/sun/star/xml/sax/XFastParser.idl
	officecfg/registry/data/org/openoffice/Office/Labels.xcu
	officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
	officecfg/registry/schema/org/openoffice/Office/Common.xcs
	officecfg/registry/schema/org/openoffice/Office/Embedding.xcs
	officecfg/registry/schema/org/openoffice/Office/ExtensionDependencies.xcs
	officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs
	officecfg/registry/schema/org/openoffice/Office/Histories.xcs
	officecfg/registry/schema/org/openoffice/Office/OptionsDialog.xcs
	officecfg/registry/schema/org/openoffice/Office/Paths.xcs
	officecfg/registry/schema/org/openoffice/Office/PresenterScreen.xcs
	officecfg/registry/schema/org/openoffice/Office/TabBrowse.xcs
	officecfg/registry/schema/org/openoffice/Office/UI.xcs
	officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs
	officecfg/registry/schema/org/openoffice/Office/UI/WindowState.xcs
	officecfg/registry/schema/org/openoffice/Office/WebWizard.xcs
	officecfg/registry/schema/org/openoffice/Office/Writer.xcs
	officecfg/registry/schema/org/openoffice/Setup.xcs
	officecfg/registry/schema/org/openoffice/TypeDetection/Types.xcs
	oox/source/xls/sheetdatabuffer.cxx
	package/source/xstor/xstorage.cxx
	padmin/source/padialog.src
	postprocess/signing/signing.pl
	pyuno/source/module/pyuno_module.cxx

Change-Id: I60c7b6d661ff803b5e9214ac7fefb32772ef19a7
2014-04-30 17:11:30 +01:00

427 lines
15 KiB
Java

/*************************************************************************
*
* The Contents of this file are made available subject to the terms of
* the BSD license.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of Sun Microsystems, Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*************************************************************************/
// __________ Imports __________
import com.sun.star.uno.UnoRuntime;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.AWTEvent;
import java.awt.event.WindowEvent;
// __________ Implementation __________
/**
* This implement a java frame which contains
* an office document, shows some status information
* about that, provides simple functionality on it
* (e.g. toggle menubar, save document) and
* react for different situations independent
* (e.g. closing the document from outside).
* Every instance of this class will be a member
* inside the global "ViewContainer" of this java
* demo application which holds all opened views alive.
*
*/
public class DocumentView extends JFrame
implements com.sun.star.lang.XEventListener, // react for Frame::disposing()
IShutdownListener // react for System.exit()
{
/**
* const
* These command strings are used to identify a received action
* of buttons on which we listen for action events.
*/
public static final String COMMAND_OPEN = "open" ;
public static final String COMMAND_SAVE = "save" ;
public static final String COMMAND_EXPORT = "export" ;
public static final String COMMAND_EXIT = "exit" ;
/**
* @member mxFrame office frame which contains the document of this view
*
* @member maStatusView special panel which shows available status information of currently loaded document
* @member maDocumentView use JNI mechanism to plug an office window into our own java UI container (used for inplace mode only!)
* @member maCustomizeView special panel makes it possible to toggle menubar/toolbar or objectbar of loaded document
* @member maInterceptor interceptor thread which intercept "new" menu of office frame to open new frames inside this java application
*
* @member msName unique name of this view (returned by the global ViewContainer during registration)
*
* @member mbOpen button to open documents
* @member mbSave button to save currently loaded document
* @member mbExport button to save currently loaded document in HTML format (if it is possible!)
* @member mbExit button to exit this demo
*
* @member maInterception we try to intercept the file->new menu to open new document inside this java application
*/
private com.sun.star.frame.XFrame mxFrame ;
private StatusView maStatusView ;
private NativeView maDocumentView ;
private CustomizeView maCustomizeView ;
private Interceptor maInterceptor ;
private String msName ;
private JButton mbtOpen ;
private JButton mbtSave ;
private JButton mbtExport ;
private JButton mbtExit ;
private boolean mbDead ;
/**
* ctor
* Create view controls on startup and initialize it with default values.
*/
DocumentView()
{
this.setSize( new Dimension(800,600) );
JPanel paMainPanel = (JPanel)this.getContentPane();
// create and add command buttons to a panel
// it will be a sub panel of later layouted UI
mbtOpen = new JButton("Open ..." );
mbtSave = new JButton("Save" );
mbtExport = new JButton("Save as HTML ...");
mbtExit = new JButton("Exit" );
mbtOpen.setEnabled (true );
mbtSave.setEnabled (false);
mbtExport.setEnabled(false);
mbtExit.setEnabled (true );
mbtOpen.setActionCommand (COMMAND_OPEN );
mbtSave.setActionCommand (COMMAND_SAVE );
mbtExport.setActionCommand(COMMAND_EXPORT);
mbtExit.setActionCommand (COMMAND_EXIT );
Reactor aListener = new Reactor();
mbtOpen.addActionListener (aListener);
mbtSave.addActionListener (aListener);
mbtExport.addActionListener(aListener);
mbtExit.addActionListener (aListener);
JPanel paCommands = new JPanel( new GridLayout(4,0) );
paCommands.add(mbtOpen);
paCommands.add(mbtSave);
paCommands.add(mbtExport);
paCommands.add(mbtExit);
// create view to show status information of opened file
maStatusView = new StatusView();
// create view for toggle different bar's of document
maCustomizeView = new CustomizeView();
paCommands.setBorder ( new TitledBorder(BorderFactory.createEtchedBorder(),"Commands") );
maStatusView.setBorder ( new TitledBorder(BorderFactory.createEtchedBorder(),"Status Informations") );
maCustomizeView.setBorder( new TitledBorder(BorderFactory.createEtchedBorder(),"Customize Document View") );
// layout the whole UI
JPanel paTest = new JPanel(new GridLayout(3,0));
paTest.add(paCommands );
paTest.add(maStatusView );
paTest.add(maCustomizeView);
JScrollPane paScroll = new JScrollPane();
paScroll.getViewport().add(paTest,null);
if(ViewContainer.mbInplace==true)
{
// create view to show opened documents
// This special view is necessary for inplace mode only!
maDocumentView = new NativeView();
JSplitPane paSplit = new JSplitPane();
paSplit.setOneTouchExpandable( true );
paSplit.setLeftComponent (maDocumentView);
paSplit.setRightComponent(paScroll );
paMainPanel.add(paSplit);
}
else
{
paMainPanel.add(paScroll);
}
// Register this new view on our global view container.
msName = FunctionHelper.getUniqueFrameName();
this.setTitle(msName);
ViewContainer.getGlobalContainer().addView(this);
ViewContainer.getGlobalContainer().addListener(this);
// be listener for closing the application
this.enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
/**
* Create the view frame for showing the office documents on demand.
* Dependend from given command line parameter we create
* an office XFrame and initialize it with a window. This
* window can be a pure toolkit window (means toolkit of office!)
* or a plugged java canvas - office window combination.
*/
public void createFrame()
{
// create view frame (as a XFrame!) here
// Look for right view mode setted by user command line parameter.
// First try to get a new unambigous frame name from our global ViewContainer.
if(ViewContainer.mbInplace==true)
{
// inplace document view can't be initialized without a visible parent window hierarchy!
// So make sure that we are visible in every case!
this.setVisible(true);
mxFrame = FunctionHelper.createViewFrame(msName,maDocumentView);
}
else
mxFrame = FunctionHelper.createViewFrame(msName,null);
if(mxFrame!=null)
{
// start interception
maInterceptor = new Interceptor(mxFrame);
maInterceptor.startListening();
// start listening for status events and actualization
// of our status view
// (of course for our CustomizeView too)
maStatusView.setFrame (mxFrame);
maCustomizeView.setFrame(mxFrame);
// be listener for closing the remote target view frame
com.sun.star.lang.XComponent xBroadcaster = UnoRuntime.queryInterface(
com.sun.star.lang.XComponent.class,
mxFrame);
if(xBroadcaster!=null)
xBroadcaster.addEventListener(this);
}
}
/**
* Different ways to load any URL from outside (may be by the command line)
* into this document view or to save it.
*/
public void load(String sURL)
{
load(sURL,new com.sun.star.beans.PropertyValue[0]);
}
public void load(String sURL, com.sun.star.beans.PropertyValue[] lArguments)
{
com.sun.star.lang.XComponent xDocument = FunctionHelper.loadDocument(mxFrame,sURL,lArguments);
if(xDocument!=null)
{
mbtSave.setEnabled (true);
mbtExport.setEnabled(true);
}
else
{
mbtSave.setEnabled (false);
mbtExport.setEnabled(false);
}
}
public void save()
{
com.sun.star.frame.XController xController = mxFrame.getController();
if (xController==null)
return;
com.sun.star.frame.XModel xDocument = xController.getModel();
if (xDocument==null)
return;
FunctionHelper.saveDocument(xDocument);
}
public void exportHTML(String sURL)
{
com.sun.star.frame.XController xController = mxFrame.getController();
if (xController==null)
return;
com.sun.star.frame.XModel xDocument = xController.getModel();
if (xDocument==null)
return;
FunctionHelper.saveAsHTML(xDocument,sURL);
}
/**
* Overridden so we can react for window closing of this view.
*/
protected void processWindowEvent(WindowEvent aEvent)
{
if (aEvent.getID()!=WindowEvent.WINDOW_CLOSING)
{
super.processWindowEvent(aEvent);
}
else
if (FunctionHelper.closeFrame(mxFrame))
{
mxFrame = null;
shutdown();
super.processWindowEvent(aEvent);
}
}
/**
* Here we can react for System.exit() normaly.
* But we use it for disposing() or windowClosing() too.
*/
public void shutdown()
{
if (mbDead)
return;
mbDead=true;
// force these sub view to release her remote
// references too!
maStatusView.shutdown();
maCustomizeView.shutdown();
maStatusView = null;
maCustomizeView = null;
// disable all interceptions
maInterceptor.shutdown();
maInterceptor = null;
// close the frame and his document
// Relaesing of our listener connections for disposing()
// will be forced automatically then. Because the frame
// will call us back ...
if (mxFrame!=null)
FunctionHelper.closeFrame(mxFrame);
// deregister this view in the global container
// Normaly we should die afterwards by garbage collection ...
// In cease this was the last view - it force a system.exit().
// But then we are no longer a member of the global container
// of possible shutdown listener ... and this method should be
// called again.
ViewContainer.getGlobalContainer().removeView(this);
}
/**
* callback from our internal saved frame
* which wish to die. Its not necessary to remove listener connections
* here. Because the broadcaster do it automatically.
* We have to release all references to him only.
*
* @param aSource
* describe the broadcaster of this event
* Must be our internal saved frame.
*/
public void disposing(com.sun.star.lang.EventObject aSource)
{
mxFrame = null;
}
/**
* This inner class is used to react for events of our own UI controls.
* So we can start different actions then.
*/
private class Reactor implements ActionListener
{
/**
* This method react for pressed buttons or selected check boxes.
*/
public void actionPerformed(ActionEvent aEvent)
{
String sCommand = aEvent.getActionCommand();
// open any file from disk
if( sCommand.compareTo(COMMAND_OPEN) == 0 )
{
String sURL = FunctionHelper.askUserForFileURL(DocumentView.this,true);
if(sURL!=null)
DocumentView.this.load(sURL);
}
else
// save current document
if( sCommand.compareTo(COMMAND_SAVE) == 0 )
{
DocumentView.this.save();
}
else
// export current document to html
if( sCommand.compareTo(COMMAND_EXPORT) == 0 )
{
String sURL = FunctionHelper.askUserForFileURL(DocumentView.this,false);
if(sURL!=null)
DocumentView.this.exportHTML(sURL);
}
else
// exit application
if( sCommand.compareTo(COMMAND_EXIT) == 0 )
{
// This will force deleting of this and
// all other currently opened views automatically!
System.exit(0);
}
}
}
}