Added more Wikipedia configurations
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.wiki / src / net / sourceforge / phpeclipse / wiki / actions / mediawiki / post / StoreWikipediaAction.java
index 0723e23..b796b80 100644 (file)
@@ -7,13 +7,14 @@ package net.sourceforge.phpeclipse.wiki.actions.mediawiki.post;
 //with permission from the original author: Daniel Wunsch
 
 import java.io.StringWriter;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
 import net.sourceforge.phpeclipse.wiki.actions.mediawiki.config.IWikipedia;
-import net.sourceforge.phpeclipse.wiki.actions.mediawiki.config.WikipediaEN;
+import net.sourceforge.phpeclipse.wiki.actions.mediawiki.config.WikipediaDE;
 import net.sourceforge.phpeclipse.wiki.actions.mediawiki.connect.Content;
 import net.sourceforge.phpeclipse.wiki.actions.mediawiki.connect.MediaWikiConnector;
 import net.sourceforge.phpeclipse.wiki.editor.WikiEditor;
@@ -87,7 +88,7 @@ public class StoreWikipediaAction implements IEditorActionDelegate {
     ArrayList configsList = new ArrayList();
     for (int i = 0; i < allConfigsList.size(); i++) {
       IConfiguration temp = (IConfiguration) allConfigsList.get(i);
-      if (temp.getType().equals(WikiEditorPlugin.WIKIPEDIA_SET_TEXT)) {
+      if (temp.getType().startsWith(WikiEditorPlugin.PREFIX_STORE)) {
         configsList.add(temp);
       }
     }
@@ -172,20 +173,27 @@ public class StoreWikipediaAction implements IEditorActionDelegate {
       try {
         IDocument doc = fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput());
         String url = generateUrl(configuration, configuration.getURL(), wikiName);
-        IWikipedia w = WikipediaEN.getInstance();
+        String wikiLocale = configuration.getType().substring(WikiEditorPlugin.PREFIX_STORE.length());
+        IWikipedia wikipediaProperties = WikiEditorPlugin.getWikiInstance(wikiLocale);
+        
         MediaWikiConnector connector = new MediaWikiConnector();
+        String actionUrl = configuration.getURL();
+        if (actionUrl == null || actionUrl.equals("")) {
+          // fall back to default settings 
+          actionUrl = wikipediaProperties.getActionUrl();
+        }
         Date d = new Date();
 
         Content content = new Content(String.valueOf(d.getTime()), doc.get());
-        boolean success = connector.login(w, configuration.getURL(), configuration.getUser(), configuration.getPassword(), false);
+        boolean success = connector.login(wikipediaProperties, actionUrl, configuration.getUser(), configuration.getPassword(), false);
         if (success) {
-          connector.store(w, configuration.getURL(), wikiName, content, "", false, false);
-          connector.logout(w, configuration.getURL());
+          connector.store(wikipediaProperties, actionUrl, wikiName, content, "", false, false);
+          connector.logout(wikipediaProperties, actionUrl);
         }
       } catch (Exception e) {
         e.printStackTrace();
         WikiEditorPlugin.getDefault()
-            .reportError("Exception occured", e.getMessage() + "\nSee stacktrace in /.metadata/.log file.");
+            .reportError("Exception occured: ", e.getMessage() + "\nSee stacktrace in /.metadata/.log file.");
       }
     }
   }