1
Netbeans平臺最近推出了annotations-based資源文件,如bundles和layer.xml文件。獲取在Eclipse中工作的Netbeans平臺註釋
在Netbeans中有一個基於Maven的Netbeans Platform項目(這些註釋工作的地方)可以很容易地將相同的項目導入到Eclipse中。
但由於某些原因,即使項目被正確導入(或者至少它似乎被正確導入了< - 下載了必要的庫等),上述註釋不會被Eclipse執行。
症狀缺少在使用這些註釋的類中導入的生成類。
實施例:
import org.netbeans.api.settings.ConvertAsProperties;
import org.openide.awt.ActionID;
import org.openide.awt.ActionReference;
import org.openide.windows.TopComponent;
import org.openide.util.NbBundle.Messages;
/**
* Top component which displays something.
*/
@ConvertAsProperties(
dtd = "-//org.something.ui//Exp//EN",
autostore = false)
@TopComponent.Description(
preferredID = "ExpTopComponent",
//iconBase="SET/PATH/TO/ICON/HERE",
persistenceType = TopComponent.PERSISTENCE_ALWAYS)
@TopComponent.Registration(mode = "output", openAtStartup = true)
@ActionID(category = "Window", id = "ExpTopComponent")
@ActionReference(path = "Menu/Window" /*, position = 333 */)
@TopComponent.OpenActionRegistration(
displayName = "#CTL_ExpAction",
preferredID = "ExpTopComponent")
@Messages({
"CTL_ExpAction=Example",
"CTL_ExpTopComponent=Example Window",
"HINT_ExpTopComponent=This is a Example window"
})
public final class ExpTopComponent extends TopComponent {
public ExpTopComponent() {
initComponents();
setName(Bundle.CTL_ExpTopComponent());
setToolTipText(Bundle.HINT_ExpTopComponent());
putClientProperty(TopComponent.PROP_CLOSING_DISABLED, Boolean.TRUE);
}
private void initComponents() {
setLayout(new java.awt.BorderLayout());
outlineView1 = new org.openide.explorer.view.OutlineView();
add(outlineView1, java.awt.BorderLayout.CENTER);
}
private org.openide.explorer.view.OutlineView outlineView1;
@Override
public void componentOpened() {
// TODO add custom code on component opening
}
@Override
public void componentClosed() {
// TODO add custom code on component closing
}
void writeProperties(java.util.Properties p) {
p.setProperty("version", "1.0");
// TODO store your settings
}
void readProperties(java.util.Properties p) {
String version = p.getProperty("version");
// TODO read your settings according to their version
}
}
如在上面的例子中看到的那樣,註釋extensivly使用,但不被Eclipse的,這導致以下行不編譯因爲束(其應自動生成的)處理不是承認爲已知類。
setName(Bundle.CTL_ExpTopComponent());
setToolTipText(Bundle.HINT_ExpTopComponent());
更多信息:
使用Eclipse是朱諾和項目性質註釋處理已啓用。
有沒有人有任何想法如何使這項工作在Eclipse中?
這不是一個真正的答案; NbBundle.Messages類位於org.openide.util jar中,但如果作爲註釋處理器鏈接,它似乎不起作用(至少對我來說不是)。一個真正的答案會顯示如何解決這個問題,而不是「哦,太難了,我會回答我更喜歡的問題」 – Stephen