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.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)
Definition: FaceObjectProviders.java:251
net.sf.gridarta
net.sf.gridarta.model.face.FaceObjectProviders
Definition: FaceObjectProviders.java:46
net.sf.gridarta.model.maparchobject.MapArchObject
Definition: MapArchObject.java:40
net.sf.gridarta.model.archetypechooser
Definition: ArchetypeChooserFolder.java:20
net.sf
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.baseobject.BaseObject
Definition: BaseObject.java:34
net.sf.gridarta.model.archetype
Definition: AbstractArchetype.java:20
net.sf.gridarta.model.archetypechooser.DisplayMode
Definition: DisplayMode.java:35
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.faceObjectProviders
final FaceObjectProviders faceObjectProviders
Definition: DisplayNameCellRenderer.java:48
net.sf.gridarta.model.gameobject.GameObject
Definition: GameObject.java:36
net.sf.gridarta.model.gameobject
Definition: AbstractGameObject.java:20
net
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.DisplayNameCellRenderer
DisplayNameCellRenderer(@NotNull final FaceObjectProviders faceObjectProviders)
Definition: DisplayNameCellRenderer.java:55
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
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.gui.panel.archetypechooser.DisplayNameCellRenderer
Definition: DisplayNameCellRenderer.java:37
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.getLayoutOrientation
int getLayoutOrientation()
Definition: DisplayNameCellRenderer.java:76
net.sf.gridarta.model
net.sf.gridarta.model.baseobject
Definition: AbstractBaseObject.java:20
net.sf.gridarta.model.face
Definition: AbstractFaceObjects.java:20
net.sf.gridarta.model.maparchobject
Definition: AbstractMapArchObject.java:20
net.sf.gridarta.model.archetype.Archetype.getArchetypeName
String getArchetypeName()
net.sf.gridarta.model.archetype.Archetype
Definition: Archetype.java:41
net.sf.gridarta.gui.panel.archetypechooser.DisplayNameCellRenderer.serialVersionUID
static final long serialVersionUID
Definition: DisplayNameCellRenderer.java:42
net.sf.gridarta.model.baseobject.BaseObject.getBestName
String getBestName()