Crossfire JXClient, Trunk
GUIItem.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.gui.item;
24 
31 import java.awt.event.MouseEvent;
32 import org.jetbrains.annotations.NotNull;
33 
39 public abstract class GUIItem extends ActivatableGUIElement implements GUIScrollable {
40 
44  private static final long serialVersionUID = 1;
45 
53  protected GUIItem(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final GuiFactory guiFactory) {
55  }
56 
57  @Override
58  public void mouseClicked(@NotNull final MouseEvent e) {
59  super.mouseClicked(e);
60 
61  if (!isEnabled()) {
62  return;
63  }
64 
65  switch (e.getButton()) {
66  case MouseEvent.BUTTON1:
67  setActive(true);
68  button1Clicked(e.getModifiersEx());
69  break;
70 
71  case MouseEvent.BUTTON2:
72  button2Clicked(e.getModifiersEx());
73  break;
74 
75  case MouseEvent.BUTTON3:
76  button3Clicked(e.getModifiersEx());
77  break;
78  }
79  }
80 
81  @Override
82  public void execute() {
83  // ignore
84  }
85 
90  public abstract void button1Clicked(final int modifiers);
91 
96  public abstract void button2Clicked(final int modifiers);
97 
102  public abstract void button3Clicked(final int modifiers);
103 
104  @Override
105  public void activeChanged() {
106  setChanged();
107  }
108 
109  @Override
110  public void setVisible(final boolean aFlag) {
111  super.setVisible(aFlag);
112  setChanged();
113  }
114 
115 }
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.name
final String name
Definition: AbstractGUIElement.java:77
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.skin.skin
Definition: DefaultJXCSkin.java:23
com.realtime.crossfire.jxclient.skin
com.realtime.crossfire.jxclient.gui.item.GUIItem.serialVersionUID
static final long serialVersionUID
Definition: GUIItem.java:44
com.realtime.crossfire.jxclient.gui.item.GUIItem.button3Clicked
abstract void button3Clicked(final int modifiers)
com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
Definition: ActivatableGUIElement.java:33
com.realtime.crossfire.jxclient.skin.skin.GuiFactory
Definition: GuiFactory.java:41
com.realtime.crossfire.jxclient.gui.item.GUIItem.mouseClicked
void mouseClicked(@NotNull final MouseEvent e)
Definition: GUIItem.java:58
com.realtime.crossfire.jxclient.gui.item.GUIItem
Definition: GUIItem.java:39
com.realtime.crossfire.jxclient.gui
com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement.elementListener
final GUIElementListener elementListener
Definition: ActivatableGUIElement.java:44
com.realtime.crossfire.jxclient.gui.item.GUIItem.activeChanged
void activeChanged()
Definition: GUIItem.java:105
com.realtime.crossfire.jxclient.gui.gui.TooltipManager
Definition: TooltipManager.java:33
com.realtime.crossfire.jxclient.gui.gui.GUIElement
Definition: GUIElement.java:33
com.realtime.crossfire.jxclient.gui.scrollable.GUIScrollable
Definition: GUIScrollable.java:32
com.realtime.crossfire.jxclient.gui.gui
Definition: AbstractGUIElement.java:23
com.realtime.crossfire.jxclient.gui.item.GUIItem.setVisible
void setVisible(final boolean aFlag)
Definition: GUIItem.java:110
com.realtime.crossfire.jxclient.gui.item.GUIItem.execute
void execute()
Definition: GUIItem.java:82
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.gui.scrollable
Definition: GUIScrollable.java:23
com
com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement.setActive
void setActive(final boolean active)
Definition: ActivatableGUIElement.java:115
com.realtime.crossfire.jxclient.gui.item.GUIItem.button1Clicked
abstract void button1Clicked(final int modifiers)
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.setChanged
void setChanged()
Definition: AbstractGUIElement.java:223
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.guiFactory
final GuiFactory guiFactory
Definition: AbstractGUIElement.java:48
com.realtime.crossfire.jxclient.gui.item.GUIItem.GUIItem
GUIItem(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final GuiFactory guiFactory)
Definition: GUIItem.java:53
com.realtime.crossfire.jxclient.gui.item.GUIItem.button2Clicked
abstract void button2Clicked(final int modifiers)
com.realtime.crossfire.jxclient.gui.gui.GUIElementListener
Definition: GUIElementListener.java:32
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.tooltipManager
final TooltipManager tooltipManager
Definition: AbstractGUIElement.java:83