diff --git a/res/de/jClipCorn/gui/localization/locale.properties b/res/de/jClipCorn/gui/localization/locale.properties index 0bd79253..c50c9b28 100644 --- a/res/de/jClipCorn/gui/localization/locale.properties +++ b/res/de/jClipCorn/gui/localization/locale.properties @@ -1189,6 +1189,9 @@ RandomMovieFrame.btnPlay.text = Play RandomMovieFrame.btnShuffle.text = Shuffle RandomMovieFrame.this.title = Random Movie +ReferenceChooserDialog.btnAppend = Append +ReferenceChooserDialog.title = References (Online) + ResourcePreloadMode.Opt0 = No preload ResourcePreloadMode.Opt1 = Synchronous preloading ResourcePreloadMode.Opt2 = Asynchronous preloading diff --git a/res/de/jClipCorn/gui/localization/locale_de_DE.properties b/res/de/jClipCorn/gui/localization/locale_de_DE.properties index 9422abf0..c28b8938 100644 --- a/res/de/jClipCorn/gui/localization/locale_de_DE.properties +++ b/res/de/jClipCorn/gui/localization/locale_de_DE.properties @@ -1189,6 +1189,9 @@ RandomMovieFrame.btnPlay.text = Abspielen RandomMovieFrame.btnShuffle.text = Mischen RandomMovieFrame.this.title = Filmtrommel +ReferenceChooserDialog.btnAppend = Neu +ReferenceChooserDialog.title = Referenzen (Online) + ResourcePreloadMode.Opt0 = Kein Vorladen ResourcePreloadMode.Opt1 = Synchrones Vorladen ResourcePreloadMode.Opt2 = Asynchrones Vorladen diff --git a/res/de/jClipCorn/gui/localization/locale_dl_DL.properties b/res/de/jClipCorn/gui/localization/locale_dl_DL.properties index 1e4c803f..a1eb32eb 100644 --- a/res/de/jClipCorn/gui/localization/locale_dl_DL.properties +++ b/res/de/jClipCorn/gui/localization/locale_dl_DL.properties @@ -1189,6 +1189,9 @@ RandomMovieFrame.btnPlay.text = Play RandomMovieFrame.btnShuffle.text = Shuffle RandomMovieFrame.this.title = Filmtrommel +ReferenceChooserDialog.btnAppend = Append +ReferenceChooserDialog.title = Referenzen (Online) + ResourcePreloadMode.Opt0 = No preload ResourcePreloadMode.Opt1 = Synchronous preloading ResourcePreloadMode.Opt2 = Asynchronous preloading diff --git a/res/de/jClipCorn/gui/localization/locale_en_US.properties b/res/de/jClipCorn/gui/localization/locale_en_US.properties index 2764fdc3..85e945f1 100644 --- a/res/de/jClipCorn/gui/localization/locale_en_US.properties +++ b/res/de/jClipCorn/gui/localization/locale_en_US.properties @@ -1189,6 +1189,9 @@ RandomMovieFrame.btnPlay.text = Play RandomMovieFrame.btnShuffle.text = Shuffle RandomMovieFrame.this.title = Random Movie +ReferenceChooserDialog.btnAppend = Append +ReferenceChooserDialog.title = References (Online) + ResourcePreloadMode.Opt0 = No preload ResourcePreloadMode.Opt1 = Synchronous preloading ResourcePreloadMode.Opt2 = Asynchronous preloading diff --git a/res/icons/common/bullet_add_16x16.png b/res/icons/common/bullet_add_16x16.png new file mode 100644 index 00000000..cbcab12b Binary files /dev/null and b/res/icons/common/bullet_add_16x16.png differ diff --git a/res/icons/common/bullet_arrow_down_16x16.png b/res/icons/common/bullet_arrow_down_16x16.png new file mode 100644 index 00000000..40156dd5 Binary files /dev/null and b/res/icons/common/bullet_arrow_down_16x16.png differ diff --git a/res/icons/common/bullet_arrow_up_16x16.png b/res/icons/common/bullet_arrow_up_16x16.png new file mode 100644 index 00000000..66d2709b Binary files /dev/null and b/res/icons/common/bullet_arrow_up_16x16.png differ diff --git a/res/icons/common/bullet_delete_16x16.png b/res/icons/common/bullet_delete_16x16.png new file mode 100644 index 00000000..7072597e Binary files /dev/null and b/res/icons/common/bullet_delete_16x16.png differ diff --git a/src/main/de/jClipCorn/Main.java b/src/main/de/jClipCorn/Main.java index 3a50dd27..1e05aa6b 100644 --- a/src/main/de/jClipCorn/Main.java +++ b/src/main/de/jClipCorn/Main.java @@ -28,7 +28,7 @@ public class Main { public final static String TITLE = "jClipCorn"; //$NON-NLS-1$ - public final static String VERSION = /**/"1.10.5.35"/**/; //$NON-NLS-1$ + public final static String VERSION = /**/"1.10.5.36"/**/; //$NON-NLS-1$ public final static String DBVERSION = "12"; //$NON-NLS-1$ public final static String JXMLVER = "2"; //$NON-NLS-1$ @@ -212,8 +212,6 @@ private static void post_init(String[] args) { //TODO localsync: also autosave to other dir (== nextcloud) (or directly sync with server??) // php viewer: view synced data online with webpage(read-only) -//TODO Edit OnlineRef in own dialog with more options (move, sort, insert, ...) - //TODO (optional) add a season ref to an online ref to associate it with a specific season //TODO re-do PlainTextExporter diff --git a/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCOnlineReferenceList.java b/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCOnlineReferenceList.java index 12c4cc78..bddf2fc2 100644 --- a/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCOnlineReferenceList.java +++ b/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCOnlineReferenceList.java @@ -1,7 +1,6 @@ package de.jClipCorn.database.databaseElement.columnTypes; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; diff --git a/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCTagList.java b/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCTagList.java index 8283cb64..60caaf47 100644 --- a/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCTagList.java +++ b/src/main/de/jClipCorn/database/databaseElement/columnTypes/CCTagList.java @@ -256,7 +256,7 @@ public static CCTagList deserialize(String v) throws TagNotFoundException boolean[] n = new boolean[TAGCOUNT]; for (int i = 0; i < TAGCOUNT; i++) n[i] = false; - for (String str : v.split(";")) + for (String str : v.split(";")) //$NON-NLS-1$ { if (!Str.isNullOrWhitespace(str)) n[CCSingleTag.find(Integer.parseInt(str)).Index] = true; } diff --git a/src/main/de/jClipCorn/gui/frames/editMovieFrame/EditMovieFrame.java b/src/main/de/jClipCorn/gui/frames/editMovieFrame/EditMovieFrame.java index 90ccf295..f892ea65 100644 --- a/src/main/de/jClipCorn/gui/frames/editMovieFrame/EditMovieFrame.java +++ b/src/main/de/jClipCorn/gui/frames/editMovieFrame/EditMovieFrame.java @@ -393,7 +393,7 @@ private void initGUI() { spnLength = new JSpinner(); spnLength.setModel(new SpinnerNumberModel(0, 0, null, 1)); - spnLength.setBounds(93, 405, 212, 20); + spnLength.setBounds(93, 405, 163, 20); getContentPane().add(spnLength); label_19 = new JLabel(LocaleBundle.getString("AddMovieFrame.lblLength.text")); //$NON-NLS-1$ @@ -405,7 +405,7 @@ private void initGUI() { getContentPane().add(spnAddDate); label_20 = new JLabel("min."); //$NON-NLS-1$ - label_20.setBounds(314, 407, 52, 16); + label_20.setBounds(266, 407, 52, 16); getContentPane().add(label_20); label_21 = new JLabel(LocaleBundle.getString("AddMovieFrame.lblEinfgDatum.text")); //$NON-NLS-1$ @@ -570,19 +570,19 @@ private void initGUI() { getContentPane().add(edGroups); btnMediaInfo1 = new JButton(Resources.ICN_MENUBAR_UPDATECODECDATA.get16x16()); - btnMediaInfo1.setBounds(386, 375, 22, 22); + btnMediaInfo1.setBounds(314, 376, 22, 22); btnMediaInfo1.addActionListener(e -> parseCodecMetadata_Lang()); btnMediaInfo1.setToolTipText("MediaInfo"); //$NON-NLS-1$ getContentPane().add(btnMediaInfo1); btnMediaInfoRaw = new JButton("..."); //$NON-NLS-1$ - btnMediaInfoRaw.setBounds(411, 375, 32, 22); + btnMediaInfoRaw.setBounds(339, 376, 32, 22); btnMediaInfoRaw.addActionListener(e -> showCodecMetadata()); btnMediaInfoRaw.setToolTipText("MediaInfo"); //$NON-NLS-1$ getContentPane().add(btnMediaInfoRaw); btnMediaInfo2 = new JButton(Resources.ICN_MENUBAR_UPDATECODECDATA.get16x16()); - btnMediaInfo2.setBounds(386, 402, 22, 22); + btnMediaInfo2.setBounds(314, 403, 22, 22); btnMediaInfo2.addActionListener(e -> parseCodecMetadata_Len()); btnMediaInfo2.setToolTipText("MediaInfo"); //$NON-NLS-1$ getContentPane().add(btnMediaInfo2); diff --git a/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/JReferenceChooser.java b/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/JReferenceChooser.java index 22523d3f..9e028ea9 100644 --- a/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/JReferenceChooser.java +++ b/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/JReferenceChooser.java @@ -2,6 +2,7 @@ import java.awt.BorderLayout; import java.awt.Insets; +import java.awt.event.InputEvent; import java.util.ArrayList; import java.util.List; @@ -31,8 +32,13 @@ private void initGUI() { add(btnAdditional, BorderLayout.EAST); btnAdditional.addActionListener(e -> { - ReferenceChooserPopup popup = new ReferenceChooserPopup(_additional, JReferenceChooser.this); - popup.setVisible(true); + if ((e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK) { + ReferenceChooserDialog dialog = new ReferenceChooserDialog(mainChooser.getValue(), _additional, JReferenceChooser.this); + dialog.setVisible(true); + } else { + ReferenceChooserPopup popup = new ReferenceChooserPopup(_additional, JReferenceChooser.this); + popup.setVisible(true); + } }); btnAdditional.setMargin(new Insets(2, 4, 2, 4)); btnAdditional.setFocusable(false); @@ -63,6 +69,11 @@ private void updateUIControls() { mainChooser.updateUIControls(); btnAdditional.setText("+"+_additional.size()); //$NON-NLS-1$ } + + public void setMain(CCSingleOnlineReference a) { + mainChooser.setValue(a); + updateUIControls(); + } public void setAdditional(List a) { _additional = CCStreams diff --git a/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserDialog.java b/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserDialog.java new file mode 100644 index 00000000..79d8ee0e --- /dev/null +++ b/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserDialog.java @@ -0,0 +1,224 @@ +package de.jClipCorn.gui.guiComponents.referenceChooser; + +import java.awt.*; +import java.awt.event.KeyEvent; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.*; +import javax.swing.border.EmptyBorder; + +import com.jgoodies.forms.layout.ColumnSpec; +import com.jgoodies.forms.layout.FormLayout; +import com.jgoodies.forms.layout.FormSpecs; +import com.jgoodies.forms.layout.RowSpec; +import de.jClipCorn.database.databaseElement.columnTypes.CCSingleOnlineReference; +import de.jClipCorn.gui.localization.LocaleBundle; +import de.jClipCorn.gui.resources.Resources; +import de.jClipCorn.util.datatypes.Tuple; + +public class ReferenceChooserDialog extends JDialog { + private static final long serialVersionUID = -3812579297074052719L; + + private final JReferenceChooser parent; + private JSingleReferenceChooser chsrMain; + private List chsrAdd; + + private JPanel pnlData; + + public ReferenceChooserDialog(CCSingleOnlineReference dataMain, List dataAdditional, JReferenceChooser parent) { + super(); + + this.parent = parent; + + initGUI(); + updateControls(dataMain, dataAdditional); + setSize(380, Math.max(250, 165 + 32*dataAdditional.size())); + + + setLocationRelativeTo(parent); + } + + private void initGUI() { + setTitle(LocaleBundle.getString("ReferenceChooserDialog.title")); //$NON-NLS-1$ + setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + setIconImage(Resources.IMG_FRAME_ICON.get()); + setType(Type.UTILITY); + setMinimumSize(new Dimension(250, 200)); + setModal(true); + + getContentPane().setLayout(new BorderLayout()); + + JPanel pnlBase = new JPanel(); + { + pnlBase.setBorder(new EmptyBorder(5, 5, 5, 5)); + pnlBase.setLayout(new BorderLayout()); + getContentPane().add(pnlBase, BorderLayout.CENTER); + + JScrollPane pnlScroll = new JScrollPane(); + { + pnlBase.add(pnlScroll, BorderLayout.CENTER); + + pnlData = new JPanel(); + { + pnlData.setLayout(new FormLayout()); + pnlScroll.setViewportView(pnlData); + } + } + + JPanel pnlOpt = new JPanel(); + { + FlowLayout flowLayout; + pnlOpt.setLayout(flowLayout = new FlowLayout()); + flowLayout.setAlignment(FlowLayout.RIGHT); + pnlBase.add(pnlOpt, BorderLayout.SOUTH); + + JButton btnAppend = new JButton(LocaleBundle.getString("ReferenceChooserDialog.btnAppend")); //$NON-NLS-1$ + btnAppend.addActionListener(e -> insertNewRef(chsrAdd.size())); + pnlOpt.add(btnAppend); + } + } + + JPanel pnlBottom = new JPanel(); + { + FlowLayout flowLayout; + pnlBottom.setLayout(flowLayout = new FlowLayout()); + flowLayout.setAlignment(FlowLayout.RIGHT); + getContentPane().add(pnlBottom, BorderLayout.SOUTH); + + JButton btnCancel = new JButton(LocaleBundle.getString("UIGeneric.btnCancel.text")); //$NON-NLS-1$ + btnCancel.addActionListener(e -> { setVisible(false); dispose(); }); + pnlBottom.add(btnCancel); + + JButton btnOk = new JButton(LocaleBundle.getString("UIGeneric.btnOK.text")); //$NON-NLS-1$ + btnOk.setFont(new Font(btnOk.getFont().getFontName(), Font.BOLD, btnOk.getFont().getSize())); + btnOk.addActionListener(e -> onOK()); + pnlBottom.add(btnOk); + } + + JRootPane root = getRootPane(); + root.registerKeyboardAction(e -> { setVisible(false); dispose(); }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); + } + + private void updateControls(CCSingleOnlineReference dataMain, List dataAdditional) { + pnlData.removeAll(); + + ArrayList rspec = new ArrayList<>(); + ArrayList cspec = new ArrayList<>(); + + cspec.add(ColumnSpec.decode("max(15dlu;default):grow")); //$NON-NLS-1$ + cspec.add(FormSpecs.RELATED_GAP_COLSPEC); + cspec.add(ColumnSpec.decode("default")); //$NON-NLS-1$ + cspec.add(ColumnSpec.decode("default")); //$NON-NLS-1$ + cspec.add(ColumnSpec.decode("default")); //$NON-NLS-1$ + cspec.add(ColumnSpec.decode("default")); //$NON-NLS-1$ + + rspec.add(RowSpec.decode("24px")); //$NON-NLS-1$ + rspec.add(RowSpec.decode("5dlu")); //$NON-NLS-1$ + for (int i = 0; i < dataAdditional.size(); i++) { + rspec.add(FormSpecs.RELATED_GAP_ROWSPEC); + rspec.add(RowSpec.decode("24px")); //$NON-NLS-1$ + } + rspec.add(RowSpec.decode("default:grow")); //$NON-NLS-1$ + + pnlData.setLayout(new FormLayout(cspec.toArray(new ColumnSpec[0]), rspec.toArray(new RowSpec[0]))); + + chsrMain = new JSingleReferenceChooser(); + chsrMain.setValue(dataMain); + pnlData.add(chsrMain, "1, 1, 6, 1, fill, fill"); //$NON-NLS-1$ + + chsrAdd = new ArrayList<>(); + + for (int i = 0; i < dataAdditional.size(); i++) { + final int fi = i; + + JSingleSubReferenceChooser c = new JSingleSubReferenceChooser(); + c.setValue(dataAdditional.get(i)); + pnlData.add(c, "1, "+(4 + i*2)+", fill, fill"); //$NON-NLS-1$ //$NON-NLS-2$ + + JButton btnUp = new JButton(Resources.ICN_GENERIC_BULLET_UP.get()); + JButton btnDn = new JButton(Resources.ICN_GENERIC_BULLET_DOWN.get()); + JButton btnIn = new JButton(Resources.ICN_GENERIC_BULLET_ADD.get()); + JButton btnRm = new JButton(Resources.ICN_GENERIC_BULLET_REM.get()); + + pnlData.add(btnUp, "3, "+(4 + i*2)+", fill, fill"); //$NON-NLS-1$ //$NON-NLS-2$ + pnlData.add(btnDn, "4, "+(4 + i*2)+", fill, fill"); //$NON-NLS-1$ //$NON-NLS-2$ + pnlData.add(btnIn, "5, "+(4 + i*2)+", fill, fill"); //$NON-NLS-1$ //$NON-NLS-2$ + pnlData.add(btnRm, "6, "+(4 + i*2)+", fill, fill"); //$NON-NLS-1$ //$NON-NLS-2$ + + btnUp.addActionListener(e -> moveRefUp(fi)); + btnDn.addActionListener(e -> moveRefDown(fi)); + btnIn.addActionListener(e -> insertNewRef(fi)); + btnRm.addActionListener(e -> removeRef(fi)); + + btnUp.setMargin(new Insets(0, 0, 0, 0)); + btnDn.setMargin(new Insets(0, 0, 0, 0)); + btnIn.setMargin(new Insets(0, 0, 0, 0)); + btnRm.setMargin(new Insets(0, 0, 0, 0)); + + btnUp.setEnabled(i>0); + btnDn.setEnabled(i<(dataAdditional.size()-1)); + + chsrAdd.add(c); + } + + validate(); + pnlData.revalidate(); + + repaint(); + pnlData.repaint(); + } + + private void onOK() { + Tuple> val = getActual(); + + List value = new ArrayList<>(); + for (CCSingleOnlineReference soref : val.Item2) + { + if (soref == null) continue; + if (soref.isUnset()) continue; + if (soref.isInvalid()) continue; + value.add(soref); + } + + parent.setMain(val.Item1); + parent.setAdditional(value); + dispose(); + } + + private Tuple> getActual() { + CCSingleOnlineReference m = chsrMain.getValue(); + + List l = new ArrayList<>(); + for (JSingleSubReferenceChooser c : chsrAdd) l.add(c.getValue()); + + return Tuple.Create(m, l); + } + + private void removeRef(int idx) { + Tuple> d = getActual(); + d.Item2.remove(idx); + updateControls(d.Item1, d.Item2); + } + + private void insertNewRef(int idx) { + Tuple> d = getActual(); + if (idx == d.Item2.size()) d.Item2.add(CCSingleOnlineReference.createNone()); + else d.Item2.add(idx+1, CCSingleOnlineReference.createNone()); + updateControls(d.Item1, d.Item2); + } + + private void moveRefDown(int idx) { + Tuple> d = getActual(); + CCSingleOnlineReference r = d.Item2.remove(idx); + d.Item2.add(idx+1, r); + updateControls(d.Item1, d.Item2); + } + + private void moveRefUp(int idx) { + Tuple> d = getActual(); + CCSingleOnlineReference r = d.Item2.remove(idx); + d.Item2.add(idx-1, r); + updateControls(d.Item1, d.Item2); + } +} diff --git a/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserPopup.java b/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserPopup.java index a041e7d8..5852f4b5 100644 --- a/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserPopup.java +++ b/src/main/de/jClipCorn/gui/guiComponents/referenceChooser/ReferenceChooserPopup.java @@ -18,6 +18,10 @@ import de.jClipCorn.database.databaseElement.columnTypes.CCSingleOnlineReference; import de.jClipCorn.gui.localization.LocaleBundle; +import java.awt.FlowLayout; +import java.awt.Insets; +import java.awt.Component; +import javax.swing.Box; public class ReferenceChooserPopup extends JDialog implements WindowFocusListener { private static final long serialVersionUID = 1286034649164678546L; @@ -34,6 +38,9 @@ public class ReferenceChooserPopup extends JDialog implements WindowFocusListene private JButton btnAdd; private JButton btnOK; private JPanel pnlBase; + private JPanel panel; + private JButton btnPopout; + private Component horizontalStrut; public ReferenceChooserPopup(List data, JReferenceChooser parent) { super(); @@ -72,16 +79,37 @@ private void initGUI(JReferenceChooser parent) { pnlBase.add(pnllBottom, BorderLayout.SOUTH); pnllBottom.setLayout(new BorderLayout(0, 0)); - btnAdd = new JButton("+"); //$NON-NLS-1$ - btnAdd.addActionListener(e -> onAdd()); - btnAdd.setMargin(new java.awt.Insets(1, 2, 1, 2)); - pnllBottom.add(btnAdd, BorderLayout.EAST); - btnOK = new JButton(LocaleBundle.getString("UIGeneric.btnOK.text")); //$NON-NLS-1$ btnOK.addActionListener(e -> onOK()); btnOK.setFont(new Font(btnOK.getFont().getFontName(), Font.BOLD, btnOK.getFont().getSize())); pnllBottom.add(btnOK, BorderLayout.WEST); + panel = new JPanel(); + FlowLayout flowLayout = (FlowLayout) panel.getLayout(); + flowLayout.setVgap(0); + flowLayout.setHgap(0); + pnllBottom.add(panel, BorderLayout.EAST); + + btnPopout = new JButton("..."); //$NON-NLS-1$ + btnPopout.addActionListener(e -> + { + ReferenceChooserDialog dialog = new ReferenceChooserDialog(parent.getValue().Main, parent.getValue().Additional, parent); + dialog.setVisible(true); + + dispose(); + disposeInstance(); + }); + btnPopout.setMargin(new Insets(1, 2, 1, 2)); + panel.add(btnPopout); + + horizontalStrut = Box.createHorizontalStrut(20); + panel.add(horizontalStrut); + + btnAdd = new JButton("+"); //$NON-NLS-1$ + panel.add(btnAdd); + btnAdd.addActionListener(e -> onAdd()); + btnAdd.setMargin(new java.awt.Insets(1, 2, 1, 2)); + pnlScroll = new JScrollPane(); pnlScroll.getVerticalScrollBar().setUnitIncrement(16); pnlBase.add(pnlScroll, BorderLayout.CENTER); @@ -113,7 +141,7 @@ private void addSingleControl(CCSingleOnlineReference soref) { uiList.add(chsr); } - public void updateHeight() { + private void updateHeight() { pack(); if (uiList.isEmpty()) { diff --git a/src/main/de/jClipCorn/gui/resources/Resources.java b/src/main/de/jClipCorn/gui/resources/Resources.java index 90823a3b..a22d21c2 100644 --- a/src/main/de/jClipCorn/gui/resources/Resources.java +++ b/src/main/de/jClipCorn/gui/resources/Resources.java @@ -46,6 +46,11 @@ public class Resources { public final static MultiSizeIconRef ICN_GENERIC_ORB_GREEN = registerMultisizeIcon("/icons/common/orb_green.png"); public final static MultiSizeIconRef ICN_GENERIC_ORB_YELLOW = registerMultisizeIcon("/icons/common/orb_yellow.png"); + public final static IconRef ICN_GENERIC_BULLET_ADD = register16x16Icon("/icons/common/bullet_add.png"); + public final static IconRef ICN_GENERIC_BULLET_REM = register16x16Icon("/icons/common/bullet_delete.png"); + public final static IconRef ICN_GENERIC_BULLET_UP = register16x16Icon("/icons/common/bullet_arrow_up.png"); + public final static IconRef ICN_GENERIC_BULLET_DOWN = register16x16Icon("/icons/common/bullet_arrow_down.png"); + public final static MultiSizeIconRef ICN_TRANSPARENT = registerMultisizeIcon("/icons/common/void.png"); // ############################################# #############################################