Minor formatting.

This commit is contained in:
LevelX2 2014-05-20 23:25:59 +02:00
parent 5a4d8c22eb
commit 2c5fbe20c0
4 changed files with 65 additions and 45 deletions

View file

@ -21,11 +21,11 @@ import java.util.regex.Pattern;
public class ManaSymbols { public class ManaSymbols {
private static final Logger log = Logger.getLogger(ManaSymbols.class); private static final Logger log = Logger.getLogger(ManaSymbols.class);
private static final Map<String, BufferedImage> manaImages = new HashMap<String, BufferedImage>(); private static final Map<String, BufferedImage> manaImages = new HashMap<>();
private static final Map<String, Image> manaImagesOriginal = new HashMap<String, Image>(); private static final Map<String, Image> manaImagesOriginal = new HashMap<>();
private static final Map<String, Image> setImages = new HashMap<String, Image>(); private static final Map<String, Image> setImages = new HashMap<>();
private static final Map<String, Dimension> setImagesExist = new HashMap<String, Dimension>(); private static final Map<String, Dimension> setImagesExist = new HashMap<>();
private static Pattern replaceSymbolsPattern = Pattern.compile("\\{([^}/]*)/?([^}]*)\\}"); private static final Pattern replaceSymbolsPattern = Pattern.compile("\\{([^}/]*)/?([^}]*)\\}");
private static String cachedPath; private static String cachedPath;
public static void loadImages() { public static void loadImages() {
@ -96,7 +96,7 @@ public class ManaSymbols {
ImageIO.write(resized, "png", newFile); ImageIO.write(resized, "png", newFile);
} }
} catch (Exception e) { } catch (Exception e) {
if (file != null && file.exists()) { if (file.exists()) {
file.delete(); file.delete();
} }
} }

View file

@ -43,13 +43,13 @@ public class DownloadGui extends JPanel {
private final BoundedRangeModel model = new DefaultBoundedRangeModel(0, 0, 0, 0); private final BoundedRangeModel model = new DefaultBoundedRangeModel(0, 0, 0, 0);
private final JProgressBar progress = new JProgressBar(model); private final JProgressBar progress = new JProgressBar(model);
private final Map<DownloadJob, DownloadPanel> progresses = new HashMap<DownloadJob, DownloadPanel>(); private final Map<DownloadJob, DownloadPanel> progresses = new HashMap<>();
private final JPanel panel = new JPanel(); private final JPanel panel = new JPanel();
public DownloadGui(Downloader d) { public DownloadGui(Downloader downloader) {
super(new BorderLayout()); super(new BorderLayout());
this.d = d; this.d = downloader;
d.addPropertyChangeListener(l); downloader.addPropertyChangeListener(l);
JPanel p = new JPanel(new BorderLayout()); JPanel p = new JPanel(new BorderLayout());
p.setBorder(BorderFactory.createTitledBorder("Progress:")); p.setBorder(BorderFactory.createTitledBorder("Progress:"));
@ -68,8 +68,9 @@ public class DownloadGui extends JPanel {
JScrollPane pane = new JScrollPane(panel); JScrollPane pane = new JScrollPane(panel);
pane.setPreferredSize(new Dimension(500, 300)); pane.setPreferredSize(new Dimension(500, 300));
add(pane); add(pane);
for(int i = 0; i < d.getJobs().size(); i++) for(int i = 0; i < downloader.getJobs().size(); i++) {
addJob(i, d.getJobs().get(i)); addJob(i, downloader.getJobs().get(i));
}
} }
public Downloader getDownloader() { public Downloader getDownloader() {
@ -82,24 +83,23 @@ public class DownloadGui extends JPanel {
String name = evt.getPropertyName(); String name = evt.getPropertyName();
if(evt.getSource() instanceof DownloadJob) { if(evt.getSource() instanceof DownloadJob) {
DownloadPanel p = progresses.get(evt.getSource()); DownloadPanel p = progresses.get(evt.getSource());
if("state".equals(name)) { switch (name) {
if(evt.getOldValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) { case "state":
changeProgress(-1, 0); if(evt.getOldValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) {
} changeProgress(-1, 0);
if(evt.getNewValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) { } if(evt.getNewValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) {
changeProgress(+1, 0); changeProgress(+1, 0);
} } if(p != null) {
if(p != null) {
p.setVisible(p.getJob().getState() != State.FINISHED); p.setVisible(p.getJob().getState() != State.FINISHED);
p.revalidate(); p.revalidate();
} } break;
} else if("message".equals(name)) { case "message":
if(p != null) { if(p != null) {
JProgressBar bar = p.getBar(); JProgressBar bar = p.getBar();
String message = p.getJob().getMessage(); String message = p.getJob().getMessage();
bar.setStringPainted(message != null); bar.setStringPainted(message != null);
bar.setString(message); bar.setString(message);
} } break;
} }
} else if(evt.getSource() == d) { } else if(evt.getSource() == d) {
if("jobs".equals(name)) { if("jobs".equals(name)) {
@ -107,10 +107,14 @@ public class DownloadGui extends JPanel {
int index = ev.getIndex(); int index = ev.getIndex();
DownloadJob oldValue = (DownloadJob) ev.getOldValue(); DownloadJob oldValue = (DownloadJob) ev.getOldValue();
if(oldValue != null) removeJob(index, oldValue); if(oldValue != null) {
removeJob(index, oldValue);
}
DownloadJob newValue = (DownloadJob) ev.getNewValue(); DownloadJob newValue = (DownloadJob) ev.getNewValue();
if(newValue != null) addJob(index, newValue); if(newValue != null) {
addJob(index, newValue);
}
} }
} }
} }
@ -146,8 +150,8 @@ public class DownloadGui extends JPanel {
private class DownloadPanel extends JPanel { private class DownloadPanel extends JPanel {
private static final long serialVersionUID = 1187986738303477168L; private static final long serialVersionUID = 1187986738303477168L;
private DownloadJob job; private final DownloadJob job;
private JProgressBar bar; private final JProgressBar bar;
public DownloadPanel(DownloadJob job) { public DownloadPanel(DownloadJob job) {
super(new BorderLayout()); super(new BorderLayout());

View file

@ -41,13 +41,13 @@ import org.mage.plugins.card.dl.lm.AbstractLaternaBean;
*/ */
public class Downloader extends AbstractLaternaBean implements Disposable { public class Downloader extends AbstractLaternaBean implements Disposable {
private static final Logger log = Logger.getLogger(Downloader.class); private static final Logger logger = Logger.getLogger(Downloader.class);
private final List<DownloadJob> jobs = properties.list("jobs"); private final List<DownloadJob> jobs = properties.list("jobs");
private final Channel<DownloadJob> channel = new MemoryChannel<DownloadJob>(); private final Channel<DownloadJob> channel = new MemoryChannel<>();
private final ExecutorService pool = Executors.newCachedThreadPool(); private final ExecutorService pool = Executors.newCachedThreadPool();
private final List<Fiber> fibers = new ArrayList<Fiber>(); private final List<Fiber> fibers = new ArrayList<>();
public Downloader() { public Downloader() {
PoolFiberFactory f = new PoolFiberFactory(pool); PoolFiberFactory f = new PoolFiberFactory(pool);
@ -70,11 +70,16 @@ public class Downloader extends AbstractLaternaBean implements Disposable {
} }
} }
for(Fiber f:fibers) for(Fiber f:fibers) {
f.dispose(); f.dispose();
}
pool.shutdown(); pool.shutdown();
} }
/**
*
* @throws Throwable
*/
@Override @Override
protected void finalize() throws Throwable { protected void finalize() throws Throwable {
dispose(); dispose();
@ -82,8 +87,12 @@ public class Downloader extends AbstractLaternaBean implements Disposable {
} }
public void add(DownloadJob job) { public void add(DownloadJob job) {
if(job.getState() == State.WORKING) throw new IllegalArgumentException("Job already running"); if(job.getState() == State.WORKING) {
if(job.getState() == State.FINISHED) throw new IllegalArgumentException("Job already finished"); throw new IllegalArgumentException("Job already running");
}
if(job.getState() == State.FINISHED) {
throw new IllegalArgumentException("Job already finished");
}
job.setState(State.NEW); job.setState(State.NEW);
jobs.add(job); jobs.add(job);
channel.publish(job); channel.publish(job);
@ -102,7 +111,9 @@ public class Downloader extends AbstractLaternaBean implements Disposable {
public void onMessage(DownloadJob job) { public void onMessage(DownloadJob job) {
//the job won't be processed by multiple threads //the job won't be processed by multiple threads
synchronized(job) { synchronized(job) {
if(job.getState() != State.NEW) return; if(job.getState() != State.NEW) {
return;
}
job.setState(State.WORKING); job.setState(State.WORKING);
} }
try { try {
@ -122,7 +133,9 @@ public class Downloader extends AbstractLaternaBean implements Disposable {
byte[] buf = new byte[8 * 1024]; byte[] buf = new byte[8 * 1024];
int total = 0; int total = 0;
for(int len; (len = is.read(buf)) != -1;) { for(int len; (len = is.read(buf)) != -1;) {
if(job.getState() == State.ABORTED) throw new IOException("Job was aborted"); if(job.getState() == State.ABORTED) {
throw new IOException("Job was aborted");
}
progress.setValue(total += len); progress.setValue(total += len);
os.write(buf, 0, len); os.write(buf, 0, len);
} }
@ -130,21 +143,21 @@ public class Downloader extends AbstractLaternaBean implements Disposable {
try { try {
dst.delete(); dst.delete();
} catch(IOException ex1) { } catch(IOException ex1) {
log.warn("While deleting", ex1); logger.warn("While deleting", ex1);
} }
throw ex; throw ex;
} finally { } finally {
try { try {
os.close(); os.close();
} catch(IOException ex) { } catch(IOException ex) {
log.warn("While closing", ex); logger.warn("While closing", ex);
} }
} }
} finally { } finally {
try { try {
is.close(); is.close();
} catch(IOException ex) { } catch(IOException ex) {
log.warn("While closing", ex); logger.warn("While closing", ex);
} }
} }
} }

View file

@ -6,14 +6,12 @@
package org.mage.plugins.card.dl.beans.properties; package org.mage.plugins.card.dl.beans.properties;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.mage.plugins.card.dl.beans.properties.basic.BasicProperty; import org.mage.plugins.card.dl.beans.properties.basic.BasicProperty;
@ -24,22 +22,27 @@ import org.mage.plugins.card.dl.beans.properties.basic.BasicProperty;
* @author Clemens Koza * @author Clemens Koza
*/ */
public abstract class AbstractProperties implements Properties { public abstract class AbstractProperties implements Properties {
@Override
public <T> Property<T> property(String name, T value) { public <T> Property<T> property(String name, T value) {
return property(name, new BasicProperty<T>(value)); return property(name, new BasicProperty<>(value));
} }
@Override
public <T> Property<T> property(String name) { public <T> Property<T> property(String name) {
return property(name, new BasicProperty<T>()); return property(name, new BasicProperty<T>());
} }
@Override
public <E> List<E> list(String name) { public <E> List<E> list(String name) {
return list(name, new ArrayList<E>()); return list(name, new ArrayList<E>());
} }
@Override
public <E> Set<E> set(String name) { public <E> Set<E> set(String name) {
return set(name, new HashSet<E>()); return set(name, new HashSet<E>());
} }
@Override
public <K, V> Map<K, V> map(String name) { public <K, V> Map<K, V> map(String name) {
return map(name, new HashMap<K, V>()); return map(name, new HashMap<K, V>());
} }