mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 20:41:58 -08:00
New tooltips (support delayed displaying, mana and tap symbols, styled text).
This commit is contained in:
parent
1a945de4de
commit
94d883b5ba
7 changed files with 95 additions and 38 deletions
|
|
@ -43,11 +43,14 @@ import mage.client.util.Event;
|
|||
import mage.client.util.Listener;
|
||||
import mage.components.CardInfoPane;
|
||||
import mage.game.GameException;
|
||||
import mage.view.CardView;
|
||||
import mage.view.CardsView;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Constructor;
|
||||
|
|
@ -98,7 +101,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
|
|||
cardSelector.getCardsList().removeCard(card.getId());
|
||||
}
|
||||
if (cardInfoPane instanceof CardInfoPane) {
|
||||
((CardInfoPane)cardInfoPane).setCard(card);
|
||||
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -178,7 +181,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
|
|||
|
||||
cardInfoPane = Plugins.getInstance().getCardInfoPane();
|
||||
if (cardInfoPane != null && System.getProperty("testCardInfo") != null) {
|
||||
cardInfoPane.setPreferredSize(new Dimension(170,230));
|
||||
cardInfoPane.setPreferredSize(new Dimension(170,150));
|
||||
cardInfoPane.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
||||
isShowCardInfo = true;
|
||||
} else {
|
||||
|
|
@ -456,4 +459,6 @@ class ImportFilter extends FileFilter {
|
|||
public String getDescription() {
|
||||
return "*.dec | *.mwDeck | *.txt";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,16 +1,13 @@
|
|||
package mage.client.plugins.adapters;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Image;
|
||||
import java.awt.Point;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.swing.Popup;
|
||||
import javax.swing.PopupFactory;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.*;
|
||||
|
||||
import mage.cards.MageCard;
|
||||
import mage.cards.MagePermanent;
|
||||
|
|
@ -25,6 +22,8 @@ import mage.client.util.DefaultActionCallback;
|
|||
import mage.client.util.ImageHelper;
|
||||
import mage.client.util.gui.ArrowBuilder;
|
||||
import mage.client.util.gui.GuiDisplayUtil;
|
||||
import mage.components.CardInfoPane;
|
||||
import mage.utils.ThreadUtils;
|
||||
import mage.view.CardView;
|
||||
|
||||
import org.jdesktop.swingx.JXPanel;
|
||||
|
|
@ -32,12 +31,14 @@ import org.jdesktop.swingx.JXPanel;
|
|||
public class MageActionCallback implements ActionCallback {
|
||||
|
||||
private Popup popup;
|
||||
private JPopupMenu jPopupMenu;
|
||||
private BigCard bigCard;
|
||||
protected static DefaultActionCallback defaultCallback = DefaultActionCallback.getInstance();
|
||||
protected static Session session = MageFrame.getSession();
|
||||
private CardView popupCard;
|
||||
private Thread t;
|
||||
private int state = 0;
|
||||
private JComponent cardInfoPane;
|
||||
|
||||
public MageActionCallback() {
|
||||
}
|
||||
|
|
@ -50,6 +51,9 @@ public class MageActionCallback implements ActionCallback {
|
|||
if (session == null) {
|
||||
session = MageFrame.getSession();
|
||||
}
|
||||
if (cardInfoPane == null) {
|
||||
cardInfoPane = Plugins.getInstance().getCardInfoPane();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -125,15 +129,44 @@ public class MageActionCallback implements ActionCallback {
|
|||
} catch (InterruptedException ie) {
|
||||
ie.printStackTrace();
|
||||
}*/
|
||||
|
||||
PopupFactory factory = PopupFactory.getSharedInstance();
|
||||
popup = factory.getPopup(data.component, data.popupText, (int) data.locationOnScreen.getX() + data.popupOffsetX, (int) data.locationOnScreen.getY() + data.popupOffsetY + 40);
|
||||
popup.show();
|
||||
// hack to get popup to resize to fit text
|
||||
popup.hide();
|
||||
popup = factory.getPopup(data.component, data.popupText, (int) data.locationOnScreen.getX() + data.popupOffsetX, (int) data.locationOnScreen.getY() + data.popupOffsetY + 40);
|
||||
popup.show();
|
||||
}
|
||||
|
||||
if (cardInfoPane == null) {
|
||||
PopupFactory factory = PopupFactory.getSharedInstance();
|
||||
popup = factory.getPopup(data.component, data.popupText, (int) data.locationOnScreen.getX() + data.popupOffsetX, (int) data.locationOnScreen.getY() + data.popupOffsetY + 40);
|
||||
popup.show();
|
||||
// hack to get popup to resize to fit text
|
||||
popup.hide();
|
||||
popup = factory.getPopup(data.component, data.popupText, (int) data.locationOnScreen.getX() + data.popupOffsetX, (int) data.locationOnScreen.getY() + data.popupOffsetY + 40);
|
||||
popup.show();
|
||||
} else {
|
||||
|
||||
ThreadUtils.threadPool2.submit(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ThreadUtils.threadPool2.submit(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
Thread.sleep(900);
|
||||
} catch (InterruptedException ie) {
|
||||
ie.printStackTrace();
|
||||
}
|
||||
if (!popupCard.equals(data.card)) {
|
||||
return;
|
||||
}
|
||||
PopupFactory factory = PopupFactory.getSharedInstance();
|
||||
((CardInfoPane)cardInfoPane).setCard(data.card);
|
||||
cardInfoPane.setSize(161, 221);
|
||||
cardInfoPane.setPreferredSize(new Dimension(161, 221));
|
||||
popup = factory.getPopup(data.component, cardInfoPane, (int) data.locationOnScreen.getX() + data.popupOffsetX, (int) data.locationOnScreen.getY() + data.popupOffsetY + 40);
|
||||
popup.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseMoved(MouseEvent e, TransferData data) {
|
||||
|
|
@ -172,6 +205,9 @@ public class MageActionCallback implements ActionCallback {
|
|||
if (popup != null) {
|
||||
popup.hide();
|
||||
}
|
||||
if (jPopupMenu != null) {
|
||||
jPopupMenu.setVisible(false);
|
||||
}
|
||||
ArrowBuilder.removeAllArrows();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue