Started working on GUI
This commit is contained in:
parent
5697f68732
commit
62f2b97097
5 changed files with 371 additions and 0 deletions
|
@ -0,0 +1 @@
|
||||||
|
pro.litvinovg.w2phtml.W2PHTMLExtension
|
175
src/main/java/pro/litvinovg/w2phtml/RegistrationHandler.java
Normal file
175
src/main/java/pro/litvinovg/w2phtml/RegistrationHandler.java
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* The Contents of this file are made available subject to the terms of
|
||||||
|
* either of the GNU Lesser General Public License Version 2.1
|
||||||
|
*
|
||||||
|
* Sun Microsystems Inc., October, 2000
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* GNU Lesser General Public License Version 2.1
|
||||||
|
* =============================================
|
||||||
|
* Copyright 2000 by Sun Microsystems, Inc.
|
||||||
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License version 2.1, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is: Sun Microsystems, Inc..
|
||||||
|
*
|
||||||
|
* Copyright: 2002 by Sun Microsystems, Inc.
|
||||||
|
*
|
||||||
|
* All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s): Cedric Bosdonnat
|
||||||
|
*
|
||||||
|
*
|
||||||
|
************************************************************************/
|
||||||
|
package pro.litvinovg.w2phtml;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.LineNumberReader;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.sun.star.lang.XSingleComponentFactory;
|
||||||
|
import com.sun.star.registry.XRegistryKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component main registration class.
|
||||||
|
*
|
||||||
|
* <p><strong>This class should not be modified.</strong></p>
|
||||||
|
*
|
||||||
|
* @author Cedric Bosdonnat aka. cedricbosdo
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RegistrationHandler {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a component factory for the implementations handled by this class.
|
||||||
|
*
|
||||||
|
* <p>This method calls all the methods of the same name from the classes listed
|
||||||
|
* in the <code>RegistrationHandler.classes</code> file. <strong>This method
|
||||||
|
* should not be modified.</strong></p>
|
||||||
|
*
|
||||||
|
* @param pImplementationName the name of the implementation to create.
|
||||||
|
*
|
||||||
|
* @return the factory which can create the implementation.
|
||||||
|
*/
|
||||||
|
public static XSingleComponentFactory __getComponentFactory(String sImplementationName ) {
|
||||||
|
XSingleComponentFactory xFactory = null;
|
||||||
|
|
||||||
|
Class[] classes = findServicesImplementationClasses();
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (i < classes.length && xFactory == null) {
|
||||||
|
Class clazz = classes[i];
|
||||||
|
if ( sImplementationName.equals( clazz.getCanonicalName() ) ) {
|
||||||
|
try {
|
||||||
|
Class[] getTypes = new Class[]{String.class};
|
||||||
|
Method getFactoryMethod = clazz.getMethod("__getComponentFactory", getTypes);
|
||||||
|
Object o = getFactoryMethod.invoke(null, sImplementationName);
|
||||||
|
xFactory = (XSingleComponentFactory)o;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// Nothing to do: skip
|
||||||
|
System.err.println("Error happened");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return xFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Writes the services implementation informations to the UNO registry.
|
||||||
|
*
|
||||||
|
* <p>This method calls all the methods of the same name from the classes listed
|
||||||
|
* in the <code>RegistrationHandler.classes</code> file. <strong>This method
|
||||||
|
* should not be modified.</strong></p>
|
||||||
|
*
|
||||||
|
* @param pRegistryKey the root registry key where to write the informations.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the informations have been successfully written
|
||||||
|
* to the registry key, <code>false</code> otherwise.
|
||||||
|
*/
|
||||||
|
public static boolean __writeRegistryServiceInfo(XRegistryKey xRegistryKey ) {
|
||||||
|
|
||||||
|
Class[] classes = findServicesImplementationClasses();
|
||||||
|
|
||||||
|
boolean success = true;
|
||||||
|
int i = 0;
|
||||||
|
while (i < classes.length && success) {
|
||||||
|
Class clazz = classes[i];
|
||||||
|
try {
|
||||||
|
Class[] writeTypes = new Class[]{XRegistryKey.class};
|
||||||
|
Method getFactoryMethod = clazz.getMethod("__writeRegistryServiceInfo", writeTypes);
|
||||||
|
Object o = getFactoryMethod.invoke(null, xRegistryKey);
|
||||||
|
success = success && ((Boolean)o).booleanValue();
|
||||||
|
} catch (Exception e) {
|
||||||
|
success = false;
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return all the UNO implementation classes.
|
||||||
|
*/
|
||||||
|
private static Class[] findServicesImplementationClasses() {
|
||||||
|
|
||||||
|
ArrayList<Class> classes = new ArrayList<Class>();
|
||||||
|
|
||||||
|
InputStream in = RegistrationHandler.class.getResourceAsStream("RegistrationHandler.classes");
|
||||||
|
LineNumberReader reader = new LineNumberReader(new InputStreamReader(in));
|
||||||
|
|
||||||
|
try {
|
||||||
|
String line = reader.readLine();
|
||||||
|
while (line != null) {
|
||||||
|
if (!line.equals("")) {
|
||||||
|
line = line.trim();
|
||||||
|
try {
|
||||||
|
Class clazz = Class.forName(line);
|
||||||
|
|
||||||
|
Class[] writeTypes = new Class[]{XRegistryKey.class};
|
||||||
|
Class[] getTypes = new Class[]{String.class};
|
||||||
|
|
||||||
|
Method writeRegMethod = clazz.getMethod("__writeRegistryServiceInfo", writeTypes);
|
||||||
|
Method getFactoryMethod = clazz.getMethod("__getComponentFactory", getTypes);
|
||||||
|
|
||||||
|
if (writeRegMethod != null && getFactoryMethod != null) {
|
||||||
|
classes.add(clazz);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
reader.close();
|
||||||
|
in.close();
|
||||||
|
} catch (Exception e) {};
|
||||||
|
}
|
||||||
|
|
||||||
|
return classes.toArray(new Class[classes.size()]);
|
||||||
|
}
|
||||||
|
}
|
97
src/main/java/pro/litvinovg/w2phtml/W2PHTMLExtension.java
Normal file
97
src/main/java/pro/litvinovg/w2phtml/W2PHTMLExtension.java
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
package pro.litvinovg.w2phtml;
|
||||||
|
|
||||||
|
import com.sun.star.uno.UnoRuntime;
|
||||||
|
import com.sun.star.uno.XComponentContext;
|
||||||
|
|
||||||
|
import pro.litvinovg.w2phtml.gui.ConfigurationWindow;
|
||||||
|
|
||||||
|
import com.sun.star.lib.uno.helper.Factory;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Comparator;
|
||||||
|
|
||||||
|
import com.sun.star.beans.Property;
|
||||||
|
import com.sun.star.beans.XPropertyContainer;
|
||||||
|
import com.sun.star.beans.XPropertySet;
|
||||||
|
import com.sun.star.beans.XPropertySetInfo;
|
||||||
|
import com.sun.star.document.XDocumentProperties;
|
||||||
|
import com.sun.star.document.XDocumentPropertiesSupplier;
|
||||||
|
import com.sun.star.frame.XDesktop;
|
||||||
|
import com.sun.star.lang.XComponent;
|
||||||
|
import com.sun.star.lang.XMultiComponentFactory;
|
||||||
|
import com.sun.star.lang.XMultiServiceFactory;
|
||||||
|
import com.sun.star.lang.XSingleComponentFactory;
|
||||||
|
import com.sun.star.registry.XRegistryKey;
|
||||||
|
import com.sun.star.lib.uno.helper.WeakBase;
|
||||||
|
|
||||||
|
|
||||||
|
public final class W2PHTMLExtension extends WeakBase
|
||||||
|
implements com.sun.star.lang.XServiceInfo,
|
||||||
|
com.sun.star.task.XJobExecutor
|
||||||
|
{
|
||||||
|
private final XComponentContext context;
|
||||||
|
private XDesktop xDesktop;
|
||||||
|
private XMultiComponentFactory multiComponentFactory;
|
||||||
|
private XComponent currentDocument;
|
||||||
|
private XDocumentProperties documentProperties;
|
||||||
|
private XDocumentPropertiesSupplier documentPropertiesSupplier;
|
||||||
|
private static final String m_implementationName = W2PHTMLExtension.class.getName();
|
||||||
|
private static final String[] m_serviceNames = { "pro.litvinovg.writer2paginatedhtml" };
|
||||||
|
|
||||||
|
|
||||||
|
public W2PHTMLExtension(XComponentContext componentContext) {
|
||||||
|
context = componentContext;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
public static XSingleComponentFactory __getComponentFactory( String sImplementationName ) {
|
||||||
|
XSingleComponentFactory xFactory = null;
|
||||||
|
|
||||||
|
if ( sImplementationName.equals( m_implementationName ) )
|
||||||
|
xFactory = Factory.createComponentFactory(W2PHTMLExtension.class, m_serviceNames);
|
||||||
|
return xFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean __writeRegistryServiceInfo( XRegistryKey xRegistryKey ) {
|
||||||
|
return Factory.writeRegistryServiceInfo(m_implementationName,
|
||||||
|
m_serviceNames,
|
||||||
|
xRegistryKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// com.sun.star.lang.XServiceInfo:
|
||||||
|
public String getImplementationName() {
|
||||||
|
return m_implementationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean supportsService( String sService ) {
|
||||||
|
int len = m_serviceNames.length;
|
||||||
|
|
||||||
|
for( int i=0; i < len; i++) {
|
||||||
|
if (sService.equals(m_serviceNames[i]))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getSupportedServiceNames() {
|
||||||
|
return m_serviceNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
// com.sun.star.task.XJobExecutor:
|
||||||
|
public void trigger(String action)
|
||||||
|
{
|
||||||
|
switch (action) {
|
||||||
|
case "openGUI":
|
||||||
|
ConfigurationWindow.runGUI();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,98 @@
|
||||||
|
package pro.litvinovg.w2phtml.gui;
|
||||||
|
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import java.awt.Toolkit;
|
||||||
|
import java.awt.GridLayout;
|
||||||
|
import javax.swing.JTabbedPane;
|
||||||
|
import javax.swing.JMenuBar;
|
||||||
|
import javax.swing.JMenu;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
public class ConfigurationWindow extends JFrame {
|
||||||
|
|
||||||
|
private JFrame frame;
|
||||||
|
private static JFrame singleFrame = null;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launch the application.
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
runGUI();
|
||||||
|
/*
|
||||||
|
* EventQueue.invokeLater(new Runnable() { public void run() { try {
|
||||||
|
* ConfigurationWindow window = new ConfigurationWindow();
|
||||||
|
* window.frame.setVisible(true); } catch (Exception e) {
|
||||||
|
* e.printStackTrace(); } } });
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the application.
|
||||||
|
*/
|
||||||
|
public ConfigurationWindow() {
|
||||||
|
setTitle("Converter from ODT to HTML, ePub and RDF");
|
||||||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
setIconImage(Toolkit.getDefaultToolkit().getImage(ConfigurationWindow.class.getResource("/pro/litvinovg/w2phtml/gui/resources/w2phtml.png")));
|
||||||
|
initComponents();
|
||||||
|
createEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createEvents() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initComponents() {
|
||||||
|
getContentPane().setLayout(new GridLayout(1, 0, 0, 0));
|
||||||
|
|
||||||
|
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT);
|
||||||
|
getContentPane().add(tabbedPane);
|
||||||
|
|
||||||
|
JPanel panel_1 = new JPanel();
|
||||||
|
tabbedPane.addTab("HTML", null, panel_1, null);
|
||||||
|
|
||||||
|
JPanel panel = new JPanel();
|
||||||
|
tabbedPane.addTab("ePub", null, panel, null);
|
||||||
|
|
||||||
|
JPanel panel_2 = new JPanel();
|
||||||
|
tabbedPane.addTab("RDF", null, panel_2, null);
|
||||||
|
|
||||||
|
JMenuBar menuBar = new JMenuBar();
|
||||||
|
setJMenuBar(menuBar);
|
||||||
|
|
||||||
|
JMenu mnFile = new JMenu("File");
|
||||||
|
menuBar.add(mnFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void runGUI() {
|
||||||
|
if (singleFrame != null) {
|
||||||
|
singleFrame.dispose();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
|
} catch (Throwable e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
EventQueue.invokeLater(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
ConfigurationWindow frame = new ConfigurationWindow();
|
||||||
|
singleFrame = frame;
|
||||||
|
frame.setBounds(100, 100, 800, 800);
|
||||||
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
frame.setVisible(true);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
BIN
src/main/java/pro/litvinovg/w2phtml/gui/resources/w2phtml.png
Normal file
BIN
src/main/java/pro/litvinovg/w2phtml/gui/resources/w2phtml.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Loading…
Add table
Reference in a new issue