Browse Source

Fixes issue 1560


git-svn-id: http://svn.dmdirc.com/trunk@4451 00569f92-eb28-0410-84fd-f71c24880f
tags/0.6
Shane Mc Cormack 16 years ago
parent
commit
bdf92a8be4

+ 4
- 3
src/com/dmdirc/addons/mediasource_dcop/DcopMediaSourcePlugin.java View File

24
 
24
 
25
 import com.dmdirc.addons.nowplaying.MediaSource;
25
 import com.dmdirc.addons.nowplaying.MediaSource;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
27
+import com.dmdirc.config.prefs.validator.ValidationResponse;
27
 import com.dmdirc.plugins.Plugin;
28
 import com.dmdirc.plugins.Plugin;
28
 import com.dmdirc.plugins.PluginInfo;
29
 import com.dmdirc.plugins.PluginInfo;
29
 import com.dmdirc.plugins.PluginManager;
30
 import com.dmdirc.plugins.PluginManager;
71
     
72
     
72
     /** {@inheritDoc} */
73
     /** {@inheritDoc} */
73
     @Override
74
     @Override
74
-    public boolean checkPrerequisites() {
75
+    public ValidationResponse checkPrerequisites() {
75
         PluginManager.getPluginManager().addPlugin("dcop.jar");
76
         PluginManager.getPluginManager().addPlugin("dcop.jar");
76
         
77
         
77
         final PluginInfo pi = PluginManager.getPluginManager().getPluginInfoByName("dcop");
78
         final PluginInfo pi = PluginManager.getPluginManager().getPluginInfoByName("dcop");
78
         
79
         
79
         if (pi == null) {
80
         if (pi == null) {
80
-            return false;
81
+            return new ValidationResponse("DCOP Plugin not found");
81
         }
82
         }
82
         
83
         
83
         if (!pi.isLoaded()) {
84
         if (!pi.isLoaded()) {
84
             pi.loadPlugin();
85
             pi.loadPlugin();
85
         }
86
         }
86
 
87
 
87
-        return true;
88
+        return new ValidationResponse();
88
     }
89
     }
89
 }
90
 }

+ 7
- 2
src/com/dmdirc/addons/systray/SystrayPlugin.java View File

32
 import com.dmdirc.config.prefs.PreferencesManager;
32
 import com.dmdirc.config.prefs.PreferencesManager;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
34
 import com.dmdirc.config.prefs.PreferencesType;
34
 import com.dmdirc.config.prefs.PreferencesType;
35
+import com.dmdirc.config.prefs.validator.ValidationResponse;
35
 import com.dmdirc.plugins.Plugin;
36
 import com.dmdirc.plugins.Plugin;
36
 import com.dmdirc.ui.messages.Styliser;
37
 import com.dmdirc.ui.messages.Styliser;
37
 import com.dmdirc.ui.swing.MainFrame;
38
 import com.dmdirc.ui.swing.MainFrame;
111
     
112
     
112
     /** {@inheritDoc} */
113
     /** {@inheritDoc} */
113
     @Override
114
     @Override
114
-    public boolean checkPrerequisites() {
115
-        return SystemTray.isSupported();
115
+    public ValidationResponse checkPrerequisites() {
116
+        if (SystemTray.isSupported()) {
117
+            return new ValidationResponse();
118
+        } else {
119
+            return new ValidationResponse("System tray is not supported on this platform.");
120
+        }
116
     }
121
     }
117
     
122
     
118
     /** {@inheritDoc} */
123
     /** {@inheritDoc} */

+ 4
- 2
src/com/dmdirc/plugins/Plugin.java View File

25
 package com.dmdirc.plugins;
25
 package com.dmdirc.plugins;
26
 
26
 
27
 import com.dmdirc.config.prefs.PreferencesManager;
27
 import com.dmdirc.config.prefs.PreferencesManager;
28
+import com.dmdirc.config.prefs.validator.ValidationResponse;
28
 
29
 
29
 /**
30
 /**
30
  * Defines the standard methods that should be implemented by plugins.
31
  * Defines the standard methods that should be implemented by plugins.
45
 	 * Check any further Prerequisites for this plugin to load that can not be
46
 	 * Check any further Prerequisites for this plugin to load that can not be
46
 	 * checked using metainfo.
47
 	 * checked using metainfo.
47
 	 *
48
 	 *
48
-	 * @return true if the plugin can be used, else false.
49
+	 * @return ValidationResponse detailign if the plugin passes any extra checks
50
+	 *         that plugin.info can't handle
49
 	 */
51
 	 */
50
-	public boolean checkPrerequisites() { return true; }
52
+	public ValidationResponse checkPrerequisites() { return new ValidationResponse(); }
51
 		
53
 		
52
 	/**
54
 	/**
53
 	 * Called when the plugin is about to be unloaded.
55
 	 * Called when the plugin is about to be unloaded.

+ 4
- 2
src/com/dmdirc/plugins/PluginInfo.java View File

26
 import com.dmdirc.Main;
26
 import com.dmdirc.Main;
27
 import com.dmdirc.actions.ActionManager;
27
 import com.dmdirc.actions.ActionManager;
28
 import com.dmdirc.actions.CoreActionType;
28
 import com.dmdirc.actions.CoreActionType;
29
+import com.dmdirc.config.prefs.validator.ValidationResponse;
29
 import com.dmdirc.util.resourcemanager.ResourceManager;
30
 import com.dmdirc.util.resourcemanager.ResourceManager;
30
 import com.dmdirc.logger.Logger;
31
 import com.dmdirc.logger.Logger;
31
 import com.dmdirc.logger.ErrorLevel;
32
 import com.dmdirc.logger.ErrorLevel;
629
 				final Object temp = constructor.newInstance(new Object[] {});
630
 				final Object temp = constructor.newInstance(new Object[] {});
630
 	
631
 	
631
 				if (temp instanceof Plugin) {
632
 				if (temp instanceof Plugin) {
632
-					if (((Plugin) temp).checkPrerequisites()) {
633
+					final ValidationResponse prerequisites = ((Plugin) temp).checkPrerequisites();
634
+					if (!prerequisites.isFailure()) {
633
 						plugin = (Plugin) temp;
635
 						plugin = (Plugin) temp;
634
 						if (!tempLoaded) {
636
 						if (!tempLoaded) {
635
 							try {
637
 							try {
642
 						}
644
 						}
643
 					} else {
645
 					} else {
644
 						if (!tempLoaded) {
646
 						if (!tempLoaded) {
645
-							lastError = "Prerequisites for plugin not met. ('"+filename+":"+getMainClass()+"')";
647
+							lastError = "Prerequisites for plugin not met. ('"+filename+":"+getMainClass()+"' -> '"+prerequisites.getFailureReason()+"') ";
646
 							Logger.userError(ErrorLevel.LOW, lastError);
648
 							Logger.userError(ErrorLevel.LOW, lastError);
647
 						}
649
 						}
648
 					}
650
 					}

Loading…
Cancel
Save