Gridarta Editor
DisplayNameCellRenderer.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.gui.panel.archetypechooser;
21 
22 import java.awt.Component;
23 import javax.swing.JList;
30 import org.jetbrains.annotations.NotNull;
31 
37 public class DisplayNameCellRenderer<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends DisplayMode<G, A, R> {
38 
42  private static final long serialVersionUID = 1L;
43 
47  @NotNull
49 
56  this.faceObjectProviders = faceObjectProviders;
57  }
58 
59  @Override
60  public Component getListCellRendererComponent(final JList<?> list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) {
61  super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
62 
63  final BaseObject<?, ?, ?, ?> archetype = (BaseObject<?, ?, ?, ?>) value;
64  setText(archetype.getBestName());
65  setIcon(faceObjectProviders.getFace(archetype));
66  return this;
67  }
68 
69  @Override
70  public int compare(final Archetype<G, A, R> o1, final Archetype<G, A, R> o2) {
71  final int cmp = o1.getBestName().compareToIgnoreCase(o2.getBestName());
72  return cmp == 0 ? o1.getArchetypeName().compareToIgnoreCase(o2.getArchetypeName()) : cmp;
73  }
74 
75  @Override
76  public int getLayoutOrientation() {
77  return JList.VERTICAL;
78  }
79 
80 }
net.sf.gridarta.model.archetype.Archetype.getArchetypeName
String getArchetypeName()
Returns the name of this archetype.
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.model.archetypechooser
Definition: ArchetypeChooserFolder.java:20
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.compare
int compare(final Archetype< G, A, R > o1, final Archetype< G, A, R > o2)
Definition: DisplayNameCellRenderer.java:70
net.sf
net.sf.gridarta.model.archetype
Definition: AbstractArchetype.java:20
net.sf.gridarta.model.face.FaceObjectProviders
Provider for faces of GameObjects and Archetypes.
Definition: FaceObjectProviders.java:46
net.sf.gridarta.model.gameobject.GameObject
Reflects a game object (object on a map).
Definition: GameObject.java:36
net.sf.gridarta.model.baseobject.BaseObject.getBestName
String getBestName()
Returns the name which is best appropriate to describe this GameObject.
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.DisplayNameCellRenderer
DisplayNameCellRenderer(@NotNull final FaceObjectProviders faceObjectProviders)
Creates a new instance.
Definition: DisplayNameCellRenderer.java:55
net.sf.gridarta.model.gameobject
GameObjects are the objects based on Archetypes found on maps.
Definition: AbstractGameObject.java:20
net
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.serialVersionUID
static final long serialVersionUID
Serial Version UID.
Definition: DisplayNameCellRenderer.java:42
list
This document describes some hints and requirements for general development on the CrossfireEditor If you plan to make changes to the editor code or setup please read the following and keep it in derived from a basic editor application called Gridder by Pasi Ker�nen so please communicate with best through the cf devel mailing list
Definition: Developer_README.txt:13
net.sf.gridarta.model.maparchobject.MapArchObject
Interface for MapArchObjects.
Definition: MapArchObject.java:40
net.sf.gridarta.model.face.FaceObjectProviders.getFace
public< G extends GameObject< G, A, R >, A extends MapArchObject< A >, R extends Archetype< G, A, R > > ImageIcon getFace(@NotNull final BaseObject< G, A, R, ?> baseObject)
Returns the face of a BaseObject as an ImageIcon.
Definition: FaceObjectProviders.java:251
net.sf.gridarta.model.baseobject.BaseObject
Definition: BaseObject.java:34
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.getListCellRendererComponent
Component getListCellRendererComponent(final JList<?> list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus)
Definition: DisplayNameCellRenderer.java:60
net.sf.gridarta.model
net.sf.gridarta.model.archetype.Archetype
Reflects an Archetype.
Definition: Archetype.java:41
net.sf.gridarta.model.baseobject
Definition: AbstractBaseObject.java:20
net.sf.gridarta.model.face
The face is the appearance of an object.
Definition: AbstractFaceObjects.java:20
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.faceObjectProviders
final FaceObjectProviders faceObjectProviders
The FaceObjectProviders for looking up faces.
Definition: DisplayNameCellRenderer.java:48
net.sf.gridarta.model.maparchobject
Definition: AbstractMapArchObject.java:20
net.sf.gridarta.model.archetypechooser.DisplayMode
Abstract base class for classes implementing display modes of the archetype chooser.
Definition: DisplayMode.java:35
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer
A DisplayMode showing archetypes as images and in-game game object name.
Definition: DisplayNameCellRenderer.java:37
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.getLayoutOrientation
int getLayoutOrientation()
Returns the layout orientation.
Definition: DisplayNameCellRenderer.java:76