Fix subtitle upload/download drop target looks

This commit is contained in:
Reinhard Pointner 2018-03-06 12:48:46 +07:00
parent 754a473316
commit 1fab52dbd0
3 changed files with 33 additions and 60 deletions

View File

@ -65,8 +65,8 @@ public abstract class AbstractSearchPanel<S, E> extends JComponent {
tabbedPaneGroup.add(tabbedPane, "grow, wrap"); tabbedPaneGroup.add(tabbedPane, "grow, wrap");
setLayout(new MigLayout("nogrid, novisualpadding, fill, insets 10px 10px 15px 10px", "align 45%", "[pref!]10px[fill]")); setLayout(new MigLayout("nogrid, novisualpadding, fill, insets 10px 10px 15px 10px", "align 45%", "[pref!]10px[fill]"));
add(searchTextField); add(searchTextField, "gap 0px:push");
add(new JButton(searchAction), "gap 16px, h 2+pref!, id search, sgy button"); add(new JButton(searchAction), "gap 16px, gap after 0px:push, h 2+pref!, id search, sgy button");
add(tabbedPaneGroup, "newline, grow"); add(tabbedPaneGroup, "newline, grow");
searchTextField.getEditor().setAction(searchAction); searchTextField.getEditor().setAction(searchAction);

View File

@ -10,6 +10,10 @@ import static net.filebot.util.ui.SwingUI.*;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.dnd.DnDConstants; import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget; import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetAdapter;
@ -18,6 +22,7 @@ import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent; import java.awt.dnd.DropTargetEvent;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.io.File; import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@ -37,6 +42,7 @@ import net.filebot.ResourceManager;
import net.filebot.platform.mac.MacAppUtilities; import net.filebot.platform.mac.MacAppUtilities;
import net.filebot.ui.subtitle.upload.SubtitleUploadDialog; import net.filebot.ui.subtitle.upload.SubtitleUploadDialog;
import net.filebot.util.FileUtilities; import net.filebot.util.FileUtilities;
import net.filebot.util.FileUtilities.ExtensionFileFilter;
import net.filebot.util.FileUtilities.ParentFilter; import net.filebot.util.FileUtilities.ParentFilter;
import net.filebot.web.OpenSubtitlesClient; import net.filebot.web.OpenSubtitlesClient;
import net.filebot.web.SubtitleProvider; import net.filebot.web.SubtitleProvider;
@ -52,12 +58,10 @@ abstract class SubtitleDropTarget extends JButton {
setHorizontalAlignment(CENTER); setHorizontalAlignment(CENTER);
setHideActionText(true); setHideActionText(true);
setBorderPainted(false);
setContentAreaFilled(false); setContentAreaFilled(false);
setFocusPainted(false); setFocusPainted(false);
setBorderPainted(false);
setBackground(Color.white); setBackground(Color.white);
setOpaque(false);
// initialize with default mode // initialize with default mode
setDropAction(DropAction.Accept); setDropAction(DropAction.Accept);
@ -70,6 +74,28 @@ abstract class SubtitleDropTarget extends JButton {
new DropTarget(this, dropHandler); new DropTarget(this, dropHandler);
} }
private Color lineColor = new Color(0xD7D7D7);
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
float w = getWidth();
float h = getHeight();
float d = Math.min(w, h) - 1f;
Shape shape = new Ellipse2D.Float((w - d) / 2, (h - d) / 2, d - 1, d - 1);
g2d.setColor(getBackground());
g2d.fill(shape);
g2d.setColor(lineColor);
g2d.draw(shape);
super.paintComponent(g2d);
}
protected void setDropAction(DropAction dropAction) { protected void setDropAction(DropAction dropAction) {
setIcon(getIcon(dropAction)); setIcon(getIcon(dropAction));
} }

View File

@ -6,15 +6,10 @@ import static net.filebot.ui.LanguageComboBoxModel.*;
import static net.filebot.util.FileUtilities.*; import static net.filebot.util.FileUtilities.*;
import static net.filebot.util.ui.SwingUI.*; import static net.filebot.util.ui.SwingUI.*;
import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Dialog.ModalityType; import java.awt.Dialog.ModalityType;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.datatransfer.Transferable; import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.geom.Path2D;
import java.io.File; import java.io.File;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
@ -76,8 +71,8 @@ public class SubtitlePanel extends AbstractSearchPanel<SubtitleProvider, Subtitl
add(createImageButton(setUserAction), "w pref!, h 2+pref!, gap rel, sgy button", 2); add(createImageButton(setUserAction), "w pref!, h 2+pref!, gap rel, sgy button", 2);
// add at the top right corner // add at the top right corner
add(uploadDropTarget, "width 50px!, height 40px!, pos n 0% 100%-60px n", 0); add(uploadDropTarget, "width 54px!, height 54px!", 4);
add(downloadDropTarget, "width 50px!, height 40px!, pos n 0% 100%-5px n", 0); add(downloadDropTarget, "width 54px!, height 54px!, gap after 10px", 5);
} }
@Subscribe @Subscribe
@ -96,30 +91,6 @@ public class SubtitlePanel extends AbstractSearchPanel<SubtitleProvider, Subtitl
public OpenSubtitlesClient getSubtitleService() { public OpenSubtitlesClient getSubtitleService() {
return WebServices.OpenSubtitles; return WebServices.OpenSubtitles;
}; };
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Path2D path = new Path2D.Float();
path.moveTo(0, 0);
path.lineTo(0, getHeight() - 1 - 12);
path.lineTo(12, getHeight() - 1);
path.lineTo(getWidth() - 1 - 12, getHeight() - 1);
path.lineTo(getWidth() - 1, getHeight() - 1 - 12);
path.lineTo(getWidth() - 1, 0);
g2d.setPaint(getBackground());
g2d.fill(path);
g2d.setPaint(Color.gray);
g2d.draw(path);
g2d.translate(2, 0);
super.paintComponent(g2d);
g2d.dispose();
}
}; };
private final SubtitleDropTarget downloadDropTarget = new SubtitleDropTarget.Download() { private final SubtitleDropTarget downloadDropTarget = new SubtitleDropTarget.Download() {
@ -148,30 +119,6 @@ public class SubtitlePanel extends AbstractSearchPanel<SubtitleProvider, Subtitl
// use currently selected language for drop target // use currently selected language for drop target
return languageComboBox.getModel().getSelectedItem() == ALL_LANGUAGES ? null : languageComboBox.getModel().getSelectedItem().getLocale(); return languageComboBox.getModel().getSelectedItem() == ALL_LANGUAGES ? null : languageComboBox.getModel().getSelectedItem().getLocale();
} }
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Path2D path = new Path2D.Float();
path.moveTo(0, 0);
path.lineTo(0, getHeight() - 1 - 12);
path.lineTo(12, getHeight() - 1);
path.lineTo(getWidth() - 1 - 12, getHeight() - 1);
path.lineTo(getWidth() - 1, getHeight() - 1 - 12);
path.lineTo(getWidth() - 1, 0);
g2d.setPaint(getBackground());
g2d.fill(path);
g2d.setPaint(Color.gray);
g2d.draw(path);
g2d.translate(2, 0);
super.paintComponent(g2d);
g2d.dispose();
}
}; };
@Override @Override