Java里ctx_Java HelpCtx.Provider方法代码示例

import org.openide.util.HelpCtx; //导入方法依赖的package包/类

boolean customize(final ValidityAwarePanel customizer, Runnable updater, boolean focusToEditor) {

ValidityAwarePanel showingCustomizer = getShowingCustomizer();

if (showingCustomizer != null) {

ProfilerDialogs.displayWarning(

Bundle.ProfilingPointsManager_AnotherPpEditedMsg());

SwingUtilities.getWindowAncestor(showingCustomizer).requestFocus();

showingCustomizer.requestFocusInWindow();

} else {

CustomizerButton cb = getCustomizerButton();

customizer.addValidityListener(cb);

cb.setEnabled(customizer.areSettingsValid()); // In fact customizer should be valid but just to be sure...

JPanel customizerContainer = new JPanel(new BorderLayout());

JPanel customizerSpacer = new JPanel(new BorderLayout());

customizerSpacer.setBorder(BorderFactory.createEmptyBorder(0, 0, 20, 0));

customizerSpacer.add(customizer, BorderLayout.CENTER);

customizerContainer.add(customizerSpacer, BorderLayout.CENTER);

customizerContainer.add(new JSeparator(), BorderLayout.SOUTH);

HelpCtx helpCtx = null;

if (customizer instanceof HelpCtx.Provider) {

helpCtx = ((HelpCtx.Provider) customizer).getHelpCtx();

}

DialogDescriptor dd = new DialogDescriptor(customizerContainer, Bundle.ProfilingPointsManager_PpCustomizerCaption(), false,

new Object[] { cb, DialogDescriptor.CANCEL_OPTION },

cb, 0, helpCtx, null);

final Dialog d = DialogDisplayer.getDefault().createDialog(dd);

d.addWindowListener(new CustomizerListener(d, dd, updater));

d.setModal(true);

// give focus to the initial focus target

d.addFocusListener(new FocusAdapter() {

@Override

public void focusGained(FocusEvent e) {

if (customizer.getInitialFocusTarget() != null) {

customizer.getInitialFocusTarget().requestFocusInWindow();

}

}

});

if (focusToEditor) {

Dimension dim = d.getPreferredSize();

Component masterComponent = WindowManager.getDefault().getRegistry().getActivated();

if (masterComponent != null) {

Rectangle b = masterComponent.getBounds();

Point location = new Point((b.x + (b.width / 2)) - (dim.width / 2),

(b.y + (b.height / 2)) - (dim.height / 2));

SwingUtilities.convertPointToScreen(location, masterComponent);

d.setLocation(location);

}

}

d.setVisible(true);

if (dd.getValue() == cb) {

return true;

}

}

return false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值