metadata-editor/source/org/libreoffice/example/comp/StarterProjectImpl.java

107 lines
3.2 KiB
Java
Raw Normal View History

2016-04-05 16:47:58 +02:00
package org.libreoffice.example.comp;
2020-04-07 18:09:17 +02:00
import com.sun.star.uno.UnoRuntime;
2016-04-05 16:47:58 +02:00
import com.sun.star.uno.XComponentContext;
2020-04-07 18:09:17 +02:00
import pro.litvinovg.libreoffice.metadata.Document;
import pro.litvinovg.libreoffice.metadata.views.EditorGUI;
2016-04-05 16:47:58 +02:00
import com.sun.star.lib.uno.helper.Factory;
2016-04-06 16:45:20 +02:00
2020-04-07 18:09:17 +02:00
import java.util.Arrays;
import java.util.Comparator;
2016-04-07 11:55:05 +02:00
import org.libreoffice.example.dialog.ActionOneDialog;
2016-04-06 16:45:20 +02:00
import org.libreoffice.example.helper.DialogHelper;
2020-04-07 18:09:17 +02:00
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;
2016-04-05 16:47:58 +02:00
import com.sun.star.lang.XSingleComponentFactory;
import com.sun.star.registry.XRegistryKey;
import com.sun.star.lib.uno.helper.WeakBase;
public final class StarterProjectImpl extends WeakBase
implements com.sun.star.lang.XServiceInfo,
com.sun.star.task.XJobExecutor
{
2020-04-07 18:09:17 +02:00
private final XComponentContext context;
private XDesktop xDesktop;
private XMultiComponentFactory multiComponentFactory;
private XComponent currentDocument;
private XDocumentProperties documentProperties;
private XDocumentPropertiesSupplier documentPropertiesSupplier;
2016-04-05 16:47:58 +02:00
private static final String m_implementationName = StarterProjectImpl.class.getName();
2020-04-07 18:09:17 +02:00
private static final String[] m_serviceNames = { "org.libreoffice.example.StarterProject" };
2016-04-05 16:47:58 +02:00
2020-04-07 18:09:17 +02:00
public StarterProjectImpl(XComponentContext componentContext) {
context = componentContext;
};
2016-04-05 16:47:58 +02:00
public static XSingleComponentFactory __getComponentFactory( String sImplementationName ) {
XSingleComponentFactory xFactory = null;
if ( sImplementationName.equals( m_implementationName ) )
xFactory = Factory.createComponentFactory(StarterProjectImpl.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:
2016-04-06 16:56:45 +02:00
public void trigger(String action)
2016-04-05 16:47:58 +02:00
{
2016-04-06 16:56:45 +02:00
switch (action) {
case "actionOne":
2020-04-07 18:09:17 +02:00
//ActionOneDialog actionOneDialog = new ActionOneDialog(m_xContext);
//actionOneDialog.show();
Document doc = new Document(context);
EditorGUI.runGUI(doc);
2016-04-06 16:56:45 +02:00
break;
default:
2020-04-07 18:09:17 +02:00
DialogHelper.showErrorMessage(context, null, "Unknown action: " + action);
2016-04-06 16:56:45 +02:00
}
2016-04-05 16:47:58 +02:00
}
2020-04-07 18:09:17 +02:00
2016-04-05 16:47:58 +02:00
}