提交 01dd347f 编写于 作者: K Kohsuke Kawaguchi

Making pronoun customizable

上级 c7a6c824
......@@ -24,6 +24,7 @@
package hudson.matrix;
import hudson.Util;
import hudson.util.AlternativeUiTextProvider;
import hudson.util.DescribableList;
import hudson.model.AbstractBuild;
import hudson.model.Cause;
......@@ -200,7 +201,7 @@ public class MatrixConfiguration extends Project<MatrixConfiguration,MatrixRun>
@Override
public String getPronoun() {
return Messages.MatrixConfiguration_Pronoun();
return AlternativeUiTextProvider.get(PRONOUN, this, Messages.MatrixConfiguration_Pronoun());
}
@Override
......
......@@ -36,6 +36,8 @@ import hudson.model.listeners.SaveableListener;
import hudson.security.AccessControlled;
import hudson.security.Permission;
import hudson.security.ACL;
import hudson.util.AlternativeUiTextProvider;
import hudson.util.AlternativeUiTextProvider.Message;
import hudson.util.AtomicFileWriter;
import hudson.util.IOException2;
import org.apache.tools.ant.taskdefs.Copy;
......@@ -104,7 +106,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet
* {@link Item}. Must start with a capital letter.
*/
public String getPronoun() {
return Messages.AbstractItem_Pronoun();
return AlternativeUiTextProvider.get(PRONOUN, this, Messages.AbstractItem_Pronoun());
}
@Exported
......@@ -500,4 +502,9 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet
throw new CmdLineException(null,Messages.AbstractItem_NoSuchJobExists(name,AbstractProject.findNearest(name).getFullName()));
return item;
}
/**
* Replaceable pronoun of that points to a job. Defaults to "Job"/"Project" depending on the context.
*/
public static final Message<AbstractItem> PRONOUN = new Message<AbstractItem>();
}
......@@ -353,7 +353,7 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
*/
@Override
public String getPronoun() {
return Messages.AbstractProject_Pronoun();
return AlternativeUiTextProvider.get(PRONOUN, this,Messages.AbstractProject_Pronoun());
}
/**
......@@ -1920,6 +1920,9 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
*/
public static final Permission ABORT = BUILD;
/**
* Replaceable "Build Now" text.
*/
public static final Message<AbstractProject> BUILD_NOW_TEXT = new Message<AbstractProject>();
/**
......
......@@ -25,6 +25,7 @@ package hudson.model;
import hudson.model.RunMap.Constructor;
import hudson.Extension;
import hudson.util.AlternativeUiTextProvider;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
......@@ -110,7 +111,7 @@ public class ExternalJob extends ViewJob<ExternalJob,ExternalRun> implements Top
@Override
public String getPronoun() {
return Messages.ExternalJob_Pronoun();
return AlternativeUiTextProvider.get(PRONOUN, this, Messages.ExternalJob_Pronoun());
}
public static final class DescriptorImpl extends TopLevelItemDescriptor {
......
......@@ -42,6 +42,8 @@ import hudson.search.SearchItem;
import hudson.search.SearchItems;
import hudson.security.ACL;
import hudson.tasks.LogRotator;
import hudson.util.AlternativeUiTextProvider;
import hudson.util.AlternativeUiTextProvider.Message;
import hudson.util.ChartUtil;
import hudson.util.ColorPalette;
import hudson.util.CopyOnWriteList;
......@@ -242,7 +244,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
@Override
public String getPronoun() {
return Messages.Job_Pronoun();
return AlternativeUiTextProvider.get(PRONOUN, this, Messages.Job_Pronoun());
}
/**
......
......@@ -193,6 +193,7 @@ public class SlaveComputer extends Computer {
try {
for (ComputerListener cl : ComputerListener.all())
cl.preLaunch(SlaveComputer.this, taskListener);
launcher.launch(SlaveComputer.this, taskListener);
return null;
} catch (AbortException e) {
......
......@@ -92,10 +92,12 @@ public abstract class AlternativeUiTextProvider implements ExtensionPoint {
}
/**
* Each instance of this class represents a text that can be replaced by {@link AlternativeUiTextProvider}.
*
* @param <T>
* Context object type. Use {@link Void} to indicate that there's no context.
*/
public static class Message<T> {
public static final class Message<T> {
// decided not to retain T as Class so that we can have Message<List<Foo>>, for example.
/**
......
......@@ -44,6 +44,7 @@ import hudson.model.Saveable;
import hudson.tasks.LogRotator;
import hudson.tasks.Publisher;
import hudson.tasks.Maven.MavenInstallation;
import hudson.util.AlternativeUiTextProvider;
import hudson.util.DescribableList;
import org.apache.maven.project.MavenProject;
import org.kohsuke.stapler.StaplerRequest;
......@@ -314,7 +315,7 @@ public final class MavenModule extends AbstractMavenProject<MavenModule,MavenBui
@Override
public String getPronoun() {
return Messages.MavenModule_Pronoun();
return AlternativeUiTextProvider.get(PRONOUN, this, Messages.MavenModule_Pronoun());
}
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册