mirror of
https://github.com/OMGeeky/ATCS.git
synced 2026-01-03 18:08:57 +01:00
First implementation of a bookmarks system.
Not persistent yet, so you lose them all when you close ATCS.
This commit is contained in:
@@ -75,6 +75,14 @@ public class DefaultIcons {
|
||||
private static String FOLDER_AT_OPEN_RES = "/com/gpl/rpg/atcontentstudio/img/folder_at_open.png";
|
||||
public static Image getATOpenImage() { return getImage(FOLDER_AT_OPEN_RES); }
|
||||
public static Image getATOpenIcon() { return getIcon(FOLDER_AT_OPEN_RES); }
|
||||
|
||||
private static String FOLDER_BOOKMARK_CLOSED_RES = "/com/gpl/rpg/atcontentstudio/img/folder_bookmark_closed.png";
|
||||
public static Image getBookmarkClosedImage() { return getImage(FOLDER_BOOKMARK_CLOSED_RES); }
|
||||
public static Image getBookmarkClosedIcon() { return getIcon(FOLDER_BOOKMARK_CLOSED_RES); }
|
||||
|
||||
private static String FOLDER_BOOKMARK_OPEN_RES = "/com/gpl/rpg/atcontentstudio/img/folder_bookmark_open.png";
|
||||
public static Image getBookmarkOpenImage() { return getImage(FOLDER_BOOKMARK_OPEN_RES); }
|
||||
public static Image getBookmarkOpenIcon() { return getIcon(FOLDER_BOOKMARK_OPEN_RES); }
|
||||
|
||||
private static String TILED_ICON_RES = "/com/gpl/rpg/atcontentstudio/img/tiled-icon.png";
|
||||
public static Image getTiledIconImage() { return getImage(TILED_ICON_RES); }
|
||||
@@ -276,6 +284,14 @@ public class DefaultIcons {
|
||||
public static Image getStatusUnknownImage() { return getImage(STATUS_UNKNOWN_RES); }
|
||||
public static Image getStatusUnknownIcon() { return getIcon(STATUS_UNKNOWN_RES); }
|
||||
|
||||
private static String BOOKMARK_INACTIVE = "/com/gpl/rpg/atcontentstudio/img/bookmark_inactive.png";
|
||||
public static Image getBookmarkInactiveImage() { return getImage(BOOKMARK_INACTIVE); }
|
||||
public static Image getBookmarkInactiveIcon() { return getIcon(BOOKMARK_INACTIVE); }
|
||||
|
||||
private static String BOOKMARK_ACTIVE = "/com/gpl/rpg/atcontentstudio/img/bookmark_active.png";
|
||||
public static Image getBookmarkActiveImage() { return getImage(BOOKMARK_ACTIVE); }
|
||||
public static Image getBookmarkActiveIcon() { return getIcon(BOOKMARK_ACTIVE); }
|
||||
|
||||
|
||||
private static Image getImage(String res) {
|
||||
if (imageCache.get(res) == null) {
|
||||
|
||||
@@ -812,7 +812,7 @@ public abstract class Editor extends JPanel implements ProjectElementListener {
|
||||
if (text.length() > 60) {
|
||||
text = text.substring(0, 57)+"...";
|
||||
}
|
||||
label.setText(((GameDataElement)value).getDataType().toString()+"/"+((Quest)((QuestStage)value).parent).id+":"+text);
|
||||
label.setText(((GameDataElement)value).getDataType().toString()+"/"+((Quest)((QuestStage)value).parent).id+"#"+((QuestStage)value).progress+":"+text);
|
||||
} else {
|
||||
label.setText(((GameDataElement)value).getDataType().toString()+"/"+((GameDataElement)value).getDesc());
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.gpl.rpg.andorstrainer.AndorsTrainer;
|
||||
import com.gpl.rpg.atcontentstudio.ATContentStudio;
|
||||
import com.gpl.rpg.atcontentstudio.model.ProjectTreeNode;
|
||||
import com.gpl.rpg.atcontentstudio.model.Workspace;
|
||||
import com.gpl.rpg.atcontentstudio.model.bookmarks.BookmarkEntry;
|
||||
import com.gpl.rpg.atcontentstudio.model.gamedata.JSONElement;
|
||||
import com.gpl.rpg.atcontentstudio.model.maps.TMXMap;
|
||||
import com.gpl.rpg.atcontentstudio.model.maps.WorldmapSegment;
|
||||
@@ -595,6 +596,8 @@ public class ProjectsTree extends JPanel {
|
||||
ATContentStudio.frame.openEditor((WorldmapSegment)node);
|
||||
} else if (node instanceof WriterModeData) {
|
||||
ATContentStudio.frame.openEditor((WriterModeData)node);
|
||||
} else if (node instanceof BookmarkEntry) {
|
||||
ATContentStudio.frame.openEditor(((BookmarkEntry)node).bookmarkedElement);
|
||||
} else if (node instanceof SavedGame) {
|
||||
if (konamiCodeEntered) {
|
||||
ATContentStudio.frame.openEditor((SavedGame)node);
|
||||
|
||||
@@ -213,6 +213,8 @@ public class StudioFrame extends JFrame {
|
||||
openEditor((Spritesheet) node);
|
||||
} else if (node instanceof TMXMap) {
|
||||
openEditor((TMXMap) node);
|
||||
} else if (node instanceof WorldmapSegment) {
|
||||
openEditor((WorldmapSegment) node);
|
||||
} else if (node instanceof WriterModeData) {
|
||||
openEditor((WriterModeData) node);
|
||||
}
|
||||
|
||||
@@ -204,6 +204,7 @@ public abstract class JSONElementEditor extends Editor {
|
||||
}
|
||||
});
|
||||
savePane.add(delete, JideBoxLayout.FIX);
|
||||
|
||||
} else {
|
||||
if (proj.alteredContent.gameData.getGameDataElement(concreteNodeClass, node.id) != null) {
|
||||
savePane.add(message = new JLabel(ALTERED_EXISTS_MESSAGE), JideBoxLayout.FIX);
|
||||
@@ -242,8 +243,10 @@ public abstract class JSONElementEditor extends Editor {
|
||||
}
|
||||
JButton prev = new JButton(new ImageIcon(DefaultIcons.getArrowLeftIcon()));
|
||||
JButton next = new JButton(new ImageIcon(DefaultIcons.getArrowRightIcon()));
|
||||
final JButton bookmark = new JButton(new ImageIcon(node.bookmark != null ? DefaultIcons.getBookmarkActiveIcon() : DefaultIcons.getBookmarkInactiveIcon()));
|
||||
savePane.add(prev, JideBoxLayout.FIX);
|
||||
savePane.add(next, JideBoxLayout.FIX);
|
||||
savePane.add(bookmark, JideBoxLayout.FIX);
|
||||
if (node.getParent().getIndex(node) == 0) {
|
||||
prev.setEnabled(false);
|
||||
}
|
||||
@@ -268,6 +271,20 @@ public abstract class JSONElementEditor extends Editor {
|
||||
}
|
||||
}
|
||||
});
|
||||
bookmark.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
if (node.bookmark == null) {
|
||||
node.getProject().bookmark(node);
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkActiveIcon()));
|
||||
} else {
|
||||
node.bookmark.delete();
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkInactiveIcon()));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//Placeholder. Fills the eventual remaining space.
|
||||
savePane.add(new JPanel(), JideBoxLayout.VARY);
|
||||
pane.add(savePane, JideBoxLayout.FIX);
|
||||
|
||||
@@ -1779,6 +1779,20 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
|
||||
}
|
||||
});
|
||||
savePane.add(delete, JideBoxLayout.FIX);
|
||||
final JButton bookmark = new JButton(new ImageIcon(map.bookmark != null ? DefaultIcons.getBookmarkActiveIcon() : DefaultIcons.getBookmarkInactiveIcon()));
|
||||
savePane.add(bookmark, JideBoxLayout.FIX);
|
||||
bookmark.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
if (map.bookmark == null) {
|
||||
map.getProject().bookmark(map);
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkActiveIcon()));
|
||||
} else {
|
||||
map.bookmark.delete();
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkInactiveIcon()));
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (proj.getMap(map.id) != map) {
|
||||
savePane.add(message = new JLabel(ALTERED_EXISTS_MESSAGE), JideBoxLayout.FIX);
|
||||
@@ -1842,6 +1856,20 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
|
||||
}
|
||||
}
|
||||
});
|
||||
final JButton bookmark = new JButton(new ImageIcon(map.bookmark != null ? DefaultIcons.getBookmarkActiveIcon() : DefaultIcons.getBookmarkInactiveIcon()));
|
||||
savePane.add(bookmark, JideBoxLayout.FIX);
|
||||
bookmark.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
if (map.bookmark == null) {
|
||||
map.getProject().bookmark(map);
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkActiveIcon()));
|
||||
} else {
|
||||
map.bookmark.delete();
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkInactiveIcon()));
|
||||
}
|
||||
}
|
||||
});
|
||||
//Placeholder. Fills the eventual remaining space.
|
||||
savePane.add(new JPanel(), JideBoxLayout.VARY);
|
||||
pane.add(savePane, JideBoxLayout.FIX);
|
||||
|
||||
@@ -986,6 +986,20 @@ public class WorldMapEditor extends Editor implements FieldUpdateListener {
|
||||
}
|
||||
}
|
||||
});
|
||||
final JButton bookmark = new JButton(new ImageIcon(node.bookmark != null ? DefaultIcons.getBookmarkActiveIcon() : DefaultIcons.getBookmarkInactiveIcon()));
|
||||
savePane.add(bookmark, JideBoxLayout.FIX);
|
||||
bookmark.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
if (node.bookmark == null) {
|
||||
node.getProject().bookmark(node);
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkActiveIcon()));
|
||||
} else {
|
||||
node.bookmark.delete();
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkInactiveIcon()));
|
||||
}
|
||||
}
|
||||
});
|
||||
//Placeholder. Fills the eventual remaining space.
|
||||
savePane.add(new JPanel(), JideBoxLayout.VARY);
|
||||
return savePane;
|
||||
|
||||
@@ -100,6 +100,20 @@ public class SpritesheetEditor extends Editor {
|
||||
});
|
||||
buttonPane.add(openImage, JideBoxLayout.FIX);
|
||||
buttonPane.add(getWarningLabel(), JideBoxLayout.FIX);
|
||||
final JButton bookmark = new JButton(new ImageIcon(sheet.bookmark != null ? DefaultIcons.getBookmarkActiveIcon() : DefaultIcons.getBookmarkInactiveIcon()));
|
||||
buttonPane.add(bookmark, JideBoxLayout.FIX);
|
||||
bookmark.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
if (target.bookmark == null) {
|
||||
target.getProject().bookmark(target);
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkActiveIcon()));
|
||||
} else {
|
||||
target.bookmark.delete();
|
||||
bookmark.setIcon(new ImageIcon(DefaultIcons.getBookmarkInactiveIcon()));
|
||||
}
|
||||
}
|
||||
});
|
||||
buttonPane.add(new JPanel(), JideBoxLayout.VARY);
|
||||
pane.add(buttonPane, JideBoxLayout.FIX);
|
||||
addLabelField(pane, "Spritesheet ID: ", sheet.id);
|
||||
|
||||
Reference in New Issue
Block a user