Со времени написания 10 самых интересных ярлыков Java для среды IDE NetBeans, которые я никогда не знал , в сборках IDE 6.9 NetBeans появилось еще несколько идей (оставив мне головную боль от того, как вписать вещи в карту сочетаний клавиш, которая доступна из меню «Справка» в NetBeans IDE).
В частности, в настоящее время доступно несколько шаблонов кода, которые полезны для программирования с использованием API-интерфейсов NetBeans, т. Е. Для создания модулей NetBeans, т. Е. Для создания / расширения приложений на платформе NetBeans.
Без лишних слов, вот они, введите сокращение и затем нажмите клавишу TAB (или любую другую, на которую установлена ваша клавиша расширения), чтобы увидеть расширения, описанные ниже:
- Аббревиатура: 2до
Описание: конвертировать FileObject в DataObject
Расширяется до:
try {
${dobType type="org.openide.loaders.DataObject" editable="false" default="DataObject"} ${dob newVarName default="dob"} = ${dobType}.find(${fo instanceof="org.openide.filesystems.FileObject" default="fo"});
${cursor}
} catch (${etype type="org.openide.loaders.DataObjectNotFoundException" default="DataObjectNotFoundException" editable="false"} ${exName newVarName default="ex" editable="false"}) {
${exctype type="org.openide.util.Exceptions" editable="false" default=""}.printStackTrace(${exName});
}
Пример:
try {
DataObject dataObject = DataObject.find(myFo);
} catch (DataObjectNotFoundException dataObjectNotFoundException) {
Exceptions.printStackTrace(dataObjectNotFoundException);
} - Аббревиатура: 2f
Описание: Конвертировать FileObject в java.io.File
Расширяется до:
${fileType type="java.io.File" default="File" editable="false"} ${file newVarName default="f"} = ${FileUtilType type="org.openide.filesystems.FileUtil" editable="false")}.toFile(${fo instanceof="org.openide.filesystems.FileObject" default="fo"});
${cursor}
Пример:
File file = FileUtil.toFile(myFo);
- Аббревиатура: 2fo
Описание: Конвертировать java.io.File в FileObject.
Расширяется до:
${fileType type="org.openide.filesystems.FileObject" default="FileObject" editable="false"} ${file newVarName default="f"} = ${FileUtilType type="org.openide.filesystems.FileUtil" editable="false")}.toFileObject(${FileUtilType}.normalizeFile(${f instanceof="java.io.File" default="f"}));
${cursor}
Пример:
FileObject fileObject = FileUtil.toFileObject(FileUtil.normalizeFile(myFile));
- Аббревиатура: Lka
Описание: Найти все реализации определенного типа, зарегистрированные в META-INF / services.
Расширяется до:
${coltype type="java.util.Collection" default="Collection" editable="false"} ${obj newVarName default="obj"} = ${lkptype editable="false" default="Lookup" type="org.openide.util.Lookup"}.getDefault().lookupAll(${Type}.class);
${cursor}
Пример:
Collection<? extends Type> collection = Lookup.getDefault().lookupAll(Type.class);
Вариация: lka (т. Е. Первый символ в нижнем регистре)
Описание: Найти все реализации определенного типа из локального поиска, например, TopComponent, Node или DataObject.
Пример:
Collection<? extends Type> collection = myNode.lookupAll(Type.class);
- Аббревиатура: Lkp
Описание: Найти реализацию с одним типом, зарегистрированную в META-INF / services.
Расширяется до:
${Type} ${obj newVarName default="obj"} = ${lkptype editable="false" default="Lookup" type="org.openide.util.Lookup"}.getDefault().lookup(${Type}.class);
${cursor}Type type = Lookup.getDefault().lookup(Type.class);
Variation: lkp (i.e., the first character is lowercase)
Description: Find a single implementation of a certain type from a local lookup, e.g., TopComponent, Node, or DataObject.
Example:
Type type = myNode.lookup(Type.class);
- Abbreviation: Lkr
Description: Assign a single typed instance from META-INF/services to a Result object, to which you can listen for changes.
Expands to:
${coltype type="org.openide.util.Lookup.Result" default="Lookup.Result" editable="false"} ${obj newVarName default="res"} = ${lkptype editable="false" default="Lookup" type="org.openide.util.Lookup"}.getDefault().lookupResult(${Type}.class);
${cursor}Lookup.Result<? extends Type> res = Lookup.getDefault().lookupResult(Type.class);
Variation: lkr (i.e., the first character is lowercase)
Description: Assign a single typed instance from a local lookup to a Result object, to which you can listen for changes.
Example:
Result<? extends Type> all = myNode.lookupResult(Type.class);
- Abbreviation: lko
Description: Create a lookup for a local object, e.g., TopComponent, Node, or DataObject.
Expands to:
${Type} ${obj newVarName default="obj"} = ${prov instanceof="org.openide.util.Lookup.Provider"}.getLookup().lookup(${Type}.class);
${cursor}Type type = myNode.getLookup().lookup(Type.class);
- Abbreviation: rp
Description: Create code for using org.openide.util.RequestProcessor.
Expands to:
${rp type="org.openide.util.RequestProcessor" default="RequestProcessor" editable="false"}.getDefault().post(${toRun instanceof="java.lang.Runnable" default="new Runnable() {
public void run() {
}
}"});RequestProcessor.getDefault().post(new Runnable() {
public void run() {
}
}); - Abbreviation: stat
Description: Create code for writing text obtained from a Bundle.properties file into the status bar.
Expands to:
${coltype type="org.openide.awt.StatusDisplayer" default="StatusDisplayer" editable="false"}.getDefault().setStatusText(${bundletype type="org.openide.util.NbBundle" default="NbBundle" editable="false"}.getMessage(getClass(), "${KEY}"));
${cursor}StatusDisplayer.getDefault().setStatusText(NbBundle.getMessage(getClass(), "KEY"));
- Abbreviation: nb
Description: Get a text from a Bundle.properties file.
Expands to:
${coltype type="org.openide.util.NbBundle" default="NbBundle" editable="false"}.getMessage(${classVar editable="false" currClassName default="getClass()"}.class, "${KEY}")
NbBundle.getMessage(DemoAction.class, "KEY")
Variation: nbb (i.e., add an additional ‘b’ character)
Description: Pass in parameters for formatting the text.
Example:
NbBundle.getMessage(DemoAction.class, "KEY", params)
It is for the first time that there are special code templates relevant to NetBeans module development, but there are many other new NetBeans code templates that I haven’t mentioned yet. A separate article will deal with those, but you can already try some of them out yourself: 2al, 2ar, 2l, 2s, log, loge, logp.
Many more new ones besides those, but let’s leave them for another day (or look in the Options window yourself, within the Editor | Code Templates tab, and you’ll see all the code templates) when we’ll look some more at new code templates in NetBeans IDE 6.9 builds.