00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.gui.gui;
00023
00024 import java.awt.Transparency;
00025 import java.awt.event.MouseEvent;
00026 import javax.swing.JComponent;
00027 import org.jetbrains.annotations.NotNull;
00028 import org.jetbrains.annotations.Nullable;
00029
00035 public abstract class AbstractGUIElement extends JComponent implements GUIElement {
00036
00040 private static final long serialVersionUID = 1;
00041
00046 @Nullable
00047 private GUIElementChangedListener changedListener = null;
00048
00053 private boolean isDefault = false;
00054
00058 private boolean ignore = false;
00059
00063 @NotNull
00064 private final String name;
00065
00069 @NotNull
00070 private final TooltipManager tooltipManager;
00071
00075 @NotNull
00076 private final GUIElementListener elementListener;
00077
00085 protected AbstractGUIElement(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, final int transparency) {
00086 setDoubleBuffered(false);
00087 this.tooltipManager = tooltipManager;
00088 this.elementListener = elementListener;
00089 this.name = name;
00090 setOpaque(transparency != Transparency.TRANSLUCENT);
00091 setFocusable(false);
00092 }
00093
00097 @Override
00098 public void dispose() {
00099 }
00100
00104 @NotNull
00105 @Override
00106 public String toString() {
00107 return name;
00108 }
00109
00113 @Override
00114 public boolean isDefault() {
00115 return isDefault;
00116 }
00117
00121 @Override
00122 public void setDefault(final boolean isDefault) {
00123 this.isDefault = isDefault;
00124 }
00125
00129 @Override
00130 public void setIgnore() {
00131 ignore = true;
00132 }
00133
00137 @Override
00138 public boolean isIgnore() {
00139 return ignore;
00140 }
00141
00145 @NotNull
00146 @Override
00147 public String getName() {
00148 return name;
00149 }
00150
00154 @Override
00155 public void mouseClicked(@NotNull final MouseEvent e) {
00156 elementListener.raiseDialog(this);
00157 }
00158
00162 @Override
00163 public void mouseEntered(@NotNull final MouseEvent e, final boolean debugGui) {
00164 tooltipManager.setElement(this);
00165 }
00166
00170 @Override
00171 public void mouseExited(@NotNull final MouseEvent e) {
00172 tooltipManager.unsetElement(this);
00173 }
00174
00178 @Override
00179 public void mousePressed(@NotNull final MouseEvent e) {
00180 elementListener.raiseDialog(this);
00181 }
00182
00186 @Override
00187 public void mouseReleased(@NotNull final MouseEvent e) {
00188 }
00189
00193 @Override
00194 public void mouseMoved(@NotNull final MouseEvent e) {
00195 }
00196
00200 @Override
00201 public void mouseDragged(@NotNull final MouseEvent e) {
00202 }
00203
00207 @Override
00208 public void setChanged() {
00209 repaint();
00210 if (isVisible()) {
00211 if (changedListener != null) {
00212 changedListener.notifyChanged();
00213 }
00214 }
00215 }
00216
00220 @Override
00221 public void setTooltipText(@Nullable final String tooltipText) {
00222 tooltipManager.setTooltipText(this, tooltipText);
00223 }
00224
00228 @Override
00229 public void setTooltipText(@Nullable final String tooltipText, final int x, final int y, final int w, final int h) {
00230 tooltipManager.setTooltipText(this, tooltipText, x, y, w, h);
00231 }
00232
00236 @Override
00237 public boolean hasTooltipText() {
00238 return tooltipManager.hasTooltipText(this);
00239 }
00240
00244 @Override
00245 public void setChangedListener(@Nullable final GUIElementChangedListener changedListener) {
00246 this.changedListener = changedListener;
00247 }
00248
00249 }