package org.libreoffice.example.comp; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.XComponentContext; import pro.litvinovg.libreoffice.metadata.Document; import pro.litvinovg.libreoffice.metadata.views.EditorGUI; import com.sun.star.lib.uno.helper.Factory; import java.util.Arrays; import java.util.Comparator; import org.libreoffice.example.dialog.ActionOneDialog; import org.libreoffice.example.helper.DialogHelper; 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 StarterProjectImpl 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 = StarterProjectImpl.class.getName(); private static final String[] m_serviceNames = { "org.libreoffice.example.StarterProject" }; public StarterProjectImpl(XComponentContext componentContext) { context = componentContext; }; 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: public void trigger(String action) { switch (action) { case "actionOne": //ActionOneDialog actionOneDialog = new ActionOneDialog(m_xContext); //actionOneDialog.show(); Document doc = new Document(context); EditorGUI.runGUI(doc); break; default: DialogHelper.showErrorMessage(context, null, "Unknown action: " + action); } } }