Revision 42200 trunk/org.gvsig.desktop/org.gvsig.desktop.framework/org.gvsig.andami/src/main/java/org/gvsig/andami/impl/DefaultPluginsManager.java
DefaultPluginsManager.java | ||
---|---|---|
27 | 27 |
import java.io.IOException; |
28 | 28 |
import java.lang.reflect.InvocationTargetException; |
29 | 29 |
import java.util.ArrayList; |
30 |
import java.util.Arrays; |
|
30 | 31 |
import java.util.Collections; |
31 | 32 |
import java.util.Enumeration; |
32 | 33 |
import java.util.Iterator; |
33 | 34 |
import java.util.List; |
34 | 35 |
|
35 | 36 |
import javax.swing.SwingUtilities; |
37 |
|
|
36 | 38 |
import org.apache.commons.io.FileUtils; |
39 |
import org.jfree.util.Log; |
|
37 | 40 |
|
38 | 41 |
import org.gvsig.andami.Launcher; |
39 | 42 |
import org.gvsig.andami.PluginServices; |
... | ... | |
46 | 49 |
import org.gvsig.andami.plugins.Extension; |
47 | 50 |
import org.gvsig.andami.plugins.IExtension; |
48 | 51 |
import org.gvsig.andami.plugins.PluginClassLoader; |
52 |
import org.gvsig.andami.plugins.status.IExtensionStatus; |
|
53 |
import org.gvsig.andami.plugins.status.IUnsavedData; |
|
49 | 54 |
import org.gvsig.installer.lib.api.PackageInfo; |
50 | 55 |
import org.gvsig.installer.lib.api.Version; |
51 | 56 |
import org.gvsig.tools.ToolsLocator; |
52 | 57 |
import org.gvsig.tools.packageutils.PackageManager; |
58 |
|
|
53 | 59 |
import org.slf4j.Logger; |
54 | 60 |
import org.slf4j.LoggerFactory; |
55 | 61 |
|
... | ... | |
340 | 346 |
return version; |
341 | 347 |
} |
342 | 348 |
|
349 |
public List<IUnsavedData> getUnsavedData() { |
|
350 |
List<IUnsavedData> unsavedDatas = new ArrayList<IUnsavedData>(); |
|
351 |
Iterator<IExtension> extensions = getExtensions(); |
|
352 |
while(extensions.hasNext()){ |
|
353 |
IExtension extension = extensions.next(); |
|
354 |
IExtensionStatus status = extension.getStatus(); |
|
355 |
if(status != null && status.hasUnsavedData()){ |
|
356 |
IUnsavedData[] unsavedData = status.getUnsavedData(); |
|
357 |
if (unsavedData != null){ |
|
358 |
unsavedDatas.addAll(Arrays.asList(unsavedData)); |
|
359 |
} |
|
360 |
} |
|
361 |
} |
|
362 |
return unsavedDatas; |
|
363 |
} |
|
364 |
|
|
365 |
public void saveUnsavedData(List<IUnsavedData> unsavedData) throws UnsavedDataException { |
|
366 |
List<IUnsavedData> errors = new ArrayList<IUnsavedData>(); |
|
367 |
|
|
368 |
for (Iterator iterator = unsavedData.iterator(); iterator.hasNext();) { |
|
369 |
IUnsavedData itemUnsavedData = (IUnsavedData) iterator.next(); |
|
370 |
try { |
|
371 |
itemUnsavedData.saveData(); |
|
372 |
} catch (Exception e) { |
|
373 |
errors.add(itemUnsavedData); |
|
374 |
logger.warn("Can't save "+itemUnsavedData.getResourceName()); |
|
375 |
} |
|
376 |
} |
|
377 |
if(!errors.isEmpty()){ |
|
378 |
throw new UnsavedDataException(errors); |
|
379 |
} |
|
380 |
} |
|
343 | 381 |
} |
Also available in: Unified diff