98 lines
2.9 KiB
Java
98 lines
2.9 KiB
Java
package pro.litvinovg.libreoffice.metadata;
|
|
|
|
import com.sun.star.uno.UnoRuntime;
|
|
import com.sun.star.uno.XComponentContext;
|
|
|
|
import pro.litvinovg.libreoffice.metadata.views.EditorGUI;
|
|
|
|
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 MetadataExtensionImpl 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 = MetadataExtensionImpl.class.getName();
|
|
private static final String[] m_serviceNames = { "pro.litvinovg.libreoffice.MetadataEditor" };
|
|
|
|
|
|
public MetadataExtensionImpl(XComponentContext componentContext) {
|
|
context = componentContext;
|
|
|
|
};
|
|
|
|
public static XSingleComponentFactory __getComponentFactory( String sImplementationName ) {
|
|
XSingleComponentFactory xFactory = null;
|
|
|
|
if ( sImplementationName.equals( m_implementationName ) )
|
|
xFactory = Factory.createComponentFactory(MetadataExtensionImpl.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":
|
|
Document doc = new Document(context);
|
|
EditorGUI.runGUI(doc);
|
|
break;
|
|
default:
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|