/** The I18n basename of the label. */
private final String i18nBasename;
+ /** Optional arguments for i18n replacement. */
+ private final Object[] arguments;
+
/**
* Creates a new label with the given I18n basename.
*
* The I18n basename of the label
*/
public I18nLabel(String i18nBasename) {
- this(i18nBasename, null);
+ this(i18nBasename, (Component) null);
}
/**
* component
*/
public I18nLabel(String i18nBasename, Component component) {
+ this(i18nBasename, component, (Object[]) null);
+ }
+
+ /**
+ * Creates a new label with the given I18n basename that optionally is a
+ * label for the given component.
+ *
+ * @param i18nBasename
+ * The I18n basename of the label
+ * @param arguments
+ * Optional arguments that are handed in to
+ * {@link I18n#get(String, Object...)}
+ */
+ public I18nLabel(String i18nBasename, Object... arguments) {
+ this(i18nBasename, null, arguments);
+ }
+
+ /**
+ * Creates a new label with the given I18n basename that optionally is a
+ * label for the given component.
+ *
+ * @param i18nBasename
+ * The I18n basename of the label
+ * @param component
+ * The component that is activated by the label, or
+ * <code>null</code> if this label should not activate a
+ * component
+ * @param arguments
+ * Optional arguments that are handed in to
+ * {@link I18n#get(String, Object...)}
+ */
+ public I18nLabel(String i18nBasename, Component component, Object... arguments) {
super();
this.i18nBasename = i18nBasename;
+ this.arguments = arguments;
updateI18n();
if (component != null) {
setLabelFor(component);
* {@inheritDoc}
*/
public void updateI18n() {
- setText(I18n.get(i18nBasename + ".name"));
+ setText(I18n.get(i18nBasename + ".name", arguments));
setDisplayedMnemonic(I18n.getKey(i18nBasename + ".mnemonic"));
}