在本文中,我们将带你了解delphi–如何修改TComponentProperty以仅在下拉列表中显示特定项目?在这篇文章中,我们将为您详细介绍delphi–如何修改TComponentPropert
在本文中,我们将带你了解delphi – 如何修改TComponentProperty以仅在下拉列表中显示特定项目?在这篇文章中,我们将为您详细介绍delphi – 如何修改TComponentProperty以仅在下拉列表中显示特定项目?的方方面面,并解答delphi下拉框可编辑常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的com.intellij.openapi.components.ComponentConfig的实例源码、com.intellij.openapi.components.ProjectComponent的实例源码、com.intellij.uiDesigner.propertyInspector.properties.BorderProperty的实例源码、com.intellij.uiDesigner.propertyInspector.properties.ClientPropertiesProperty的实例源码。
本文目录一览:- delphi – 如何修改TComponentProperty以仅在下拉列表中显示特定项目?(delphi下拉框可编辑)
- com.intellij.openapi.components.ComponentConfig的实例源码
- com.intellij.openapi.components.ProjectComponent的实例源码
- com.intellij.uiDesigner.propertyInspector.properties.BorderProperty的实例源码
- com.intellij.uiDesigner.propertyInspector.properties.ClientPropertiesProperty的实例源码
delphi – 如何修改TComponentProperty以仅在下拉列表中显示特定项目?(delphi下拉框可编辑)
我有一个名为TMenuItemSelector的组件,它有两个已发布的属性:PopupMenu – 允许从表单中选择TPopupMenu的实例,而MenuItem允许从表单中选择任何TMenuItem实例.
我想以一种方式修改MenuItem属性的属性编辑器,当分配PopupMenu时,只有来自此PopupMenu的菜单项在下拉列表中可见.
我知道我需要编写自己的TComponentProperty后代并覆盖GetValues方法.问题是我不知道如何访问TMenuItemSelector所在的表单.
原始TComponentProperty使用此方法迭代所有可用实例:
procedure TComponentProperty.GetValues(Proc: TGetStrProc); begin Designer.GetComponentNames(GetTypeData(GetPropType),Proc); end;
但是,Designer似乎是预编译的,所以我不知道GetComponentNames是如何工作的.
这是我到目前为止所做的,我想我唯一缺少的是GetValues的实现:
unit uMenuItemSelector; interface uses Classes,Menus,DesignIntf,DesignEditors; type TMenuItemSelector = class(TComponent) private FPopupMenu: TPopUpMenu; FMenuItem: TMenuItem; procedure SetPopupMenu(const Value: TPopUpMenu); procedure SetMenuItem(const Value: TMenuItem); published property PopupMenu: TPopUpMenu read FPopupMenu write SetPopupMenu; property MenuItem: TMenuItem read FMenuItem write SetMenuItem; end; type TMenuItemProp = class(TComponentProperty) public function GetAttributes: TPropertyAttributes; override; procedure GetValues(Proc: TGetStrProc); override; end; procedure Register; implementation procedure Register; begin Registerpropertyeditor(TypeInfo(TMenuItem),TMenuItemSelector,'MenuItem',TMenuItemProp); RegisterComponents('Test',[TMenuItemSelector]); end; { TMenuItemSelector } procedure TMenuItemSelector.SetMenuItem(const Value: TMenuItem); begin FMenuItem := Value; end; procedure TMenuItemSelector.SetPopupMenu(const Value: TPopUpMenu); begin FPopupMenu := Value; end; { TMenuItemProperty } function TMenuItemProp.GetAttributes: TPropertyAttributes; begin Result := inherited GetAttributes + [paValueList,paSortList]; end; procedure TMenuItemProp.GetValues(Proc: TGetStrProc); begin //How to filter MenuItems from the form in a way that only //MenuItems which belong to TMenuItemSelector.PopupMenu are displayed? \ //And how to get to that form? //inherited; end; end.
有人可以帮忙吗?
谢谢.
解决方法
procedure TMenuItemProp.GetValues(Proc: TGetStrProc); var Selector: TMenuItemSelector; I: Integer; begin Selector := GetComponent(0) as TMenuItemSelector; if Selector.PopupMenu <> nil then begin with Selector.PopupMenu.Items do begin for I := 0 to Count-1 do Proc(Designer.GetComponentName(Items[I])); end; end else inherited GetValues(Proc); end;
顺便说一句,您需要在单独的包中实现TMenuItemSelector和TMenuItemProp.除了RegisterComponents()函数(在运行时包中实现)之外,不允许将设计时代码编译为运行时可执行文件.这是针对EULA的,Embarcadero的设计时间版本不允许分发.您需要在仅运行时的包中实现TMenuItemSelector,然后在仅设计时的包中实现TMenuItemProp和Register(),该包需要仅运行时包并使用声明TMenuItemSelector的单元,例如:
unit uMenuItemSelector; interface uses Classes,Menus; type TMenuItemSelector = class(TComponent) private FPopupMenu: TPopUpMenu; FMenuItem: TMenuItem; procedure SetPopupMenu(const Value: TPopUpMenu); procedure SetMenuItem(const Value: TMenuItem); protected procedure Notification(AComponent: TComponent; Operation: TOperation); override; published property PopupMenu: TPopUpMenu read FPopupMenu write SetPopupMenu; property MenuItem: TMenuItem read FMenuItem write SetMenuItem; end; implementation { TMenuItemSelector } procedure TMenuItemSelector.Notification(AComponent: TComponent; Operation: TOperation); begin inherited; if Operation = opRemove then begin if AComponent = FPopupMenu then begin FPopupMenu := nil; FMenuItem := nil; end else if AComponent = FMenuItem then begin FMenuItem := nil; end; end; end; procedure TMenuItemSelector.SetMenuItem(const Value: TMenuItem); begin if FMenuItem <> Value then begin if FMenuItem <> nil then FMenuItem.RemoveFreeNotification(Self); FMenuItem := Value; if FMenuItem <> nil then FMenuItem.FreeNotification(Self); end; end; procedure TMenuItemSelector.SetPopupMenu(const Value: TPopUpMenu); begin if FPopupMenu <> Value then begin if FPopupMenu <> nil then FPopupMenu.RemoveFreeNotification(Self); FPopupMenu := Value; if FPopupMenu <> nil then FPopupMenu.FreeNotification(Self); SetMenuItem(nil); end; end; end.
.
unit uMenuItemSelectorEditor; interface uses Classes,DesignEditors; type TMenuItemSelectorMenuItemProp = class(TComponentProperty) public function GetAttributes: TPropertyAttributes; override; procedure GetValues(Proc: TGetStrProc); override; end; procedure Register; implementation uses Menus,uMenuItemSelector; procedure Register; begin RegisterComponents('Test',[TMenuItemSelector]); Registerpropertyeditor(TypeInfo(TMenuItem),TMenuItemSelectorMenuItemProp); end; { TMenuItemSelectorMenuItemProp } function TMenuItemSelectorMenuItemProp.GetAttributes: TPropertyAttributes; begin Result := inherited GetAttributes + [paValueList,paSortList] - [paMultiSelect]; end; procedure TMenuItemSelectorMenuItemProp.GetValues(Proc: TGetStrProc); var Selector: TMenuItemSelector; I: Integer; begin Selector := GetComponent(0) as TMenuItemSelector; if Selector.PopupMenu <> nil then begin with Selector.PopupMenu.Items do begin for I := 0 to Count-1 do Proc(Designer.GetComponentName(Items[I])); end; end else inherited GetValues(Proc); end; end.
com.intellij.openapi.components.ComponentConfig的实例源码
protected final void init(@Nullable ProgressIndicator indicator,@Nullable Runnable componentsRegistered) { List<ComponentConfig> componentConfigs = getComponentConfigs(); for (ComponentConfig config : componentConfigs) { registerComponents(config); } myComponentConfigCount = componentConfigs.size(); if (componentsRegistered != null) { componentsRegistered.run(); } if (indicator != null) { indicator.setIndeterminate(false); } createComponents(indicator); myComponentsCreated = true; }
@NotNull private List<ComponentConfig> getComponentConfigs() { ArrayList<ComponentConfig> componentConfigs = new ArrayList<ComponentConfig>(); boolean isDefaultProject = this instanceof Project && ((Project)this).isDefault(); boolean headless = ApplicationManager.getApplication().isHeadlessEnvironment(); for (IdeaPluginDescriptor plugin : PluginManagerCore.getPlugins()) { if (PluginManagerCore.shouldSkipPlugin(plugin)) { continue; } ComponentConfig[] configs = getMyComponentConfigsFromDescriptor(plugin); componentConfigs.ensureCapacity(componentConfigs.size() + configs.length); for (ComponentConfig config : configs) { if ((!isDefaultProject || config.isLoadForDefaultProject()) && isComponentSuitable(config.options) && config.prepareClasses(headless)) { config.pluginDescriptor = plugin; componentConfigs.add(config); } } } return componentConfigs; }
private void registerComponents(@NotNull ComponentConfig config) { ClassLoader loader = config.getClassLoader(); try { final Class<?> interfaceClass = Class.forName(config.getInterfaceClass(),true,loader); final Class<?> implementationClass = Comparing.equal(config.getInterfaceClass(),config.getImplementationClass()) ? interfaceClass : StringUtil.isEmpty(config.getImplementationClass()) ? null : Class.forName(config.getImplementationClass(),loader); Mutablepicocontainer picocontainer = getpicocontainer(); if (config.options != null && Boolean.parseBoolean(config.options.get("overrides"))) { ComponentAdapter oldAdapter = picocontainer.getComponentAdapterOfType(interfaceClass); if (oldAdapter == null) { throw new RuntimeException(config + " does not override anything"); } picocontainer.unregisterComponent(oldAdapter.getComponentKey()); } // implementationClass == null means we want to unregister this component if (implementationClass != null) { picocontainer.registerComponent(new ComponentConfigComponentAdapter(interfaceClass,implementationClass,config.getPluginId(),config.options != null && Boolean.parseBoolean(config.options.get("workspace")))); } } catch (Throwable t) { handleInitComponentError(t,null,config.getPluginId()); } }
public static void handleComponentError(Throwable t,String componentClassName,ComponentConfig config) { if (t instanceof StartupAbortedException) { throw (StartupAbortedException)t; } PluginId pluginId = config != null ? config.getPluginId() : getPluginByClassName(componentClassName); if (pluginId != null && !CORE_PLUGIN_ID.equals(pluginId.getIdString())) { getLogger().warn(t); disablePlugin(pluginId.getIdString()); String message = "Plugin '" + pluginId.getIdString() + "' Failed to initialize and will be disabled\n" + "(reason: " + t.getMessage() + ")\n\n" + ApplicationNamesInfo.getInstance().getFullProductName() + " will be restarted."; Main.showMessage("Plugin Error",message,false); throw new StartupAbortedException(t).exitCode(Main.PLUGIN_ERROR).logError(false); } else { throw new StartupAbortedException("Fatal error initializing '" + componentClassName + "'",t); } }
private static ComponentConfig[] mergeComponents(ComponentConfig[] first,ComponentConfig[] second) { if (first == null) { return second; } if (second == null) { return first; } return ArrayUtil.mergeArrays(first,second); }
@Override protected void handleInitComponentError(Throwable t,ComponentConfig config) { if (!myHandlingInitComponentError) { myHandlingInitComponentError = true; try { PluginManager.handleComponentError(t,componentClassName,config); } finally { myHandlingInitComponentError = false; } } }
public void loadComponentsConfiguration(final ComponentConfig[] components,final PluginDescriptor descriptor,final boolean defaultProject) { if (components == null) return; loadConfiguration(components,defaultProject,descriptor); }
private static ComponentConfig[] mergeComponents(ComponentConfig[] first,second); }
@Override protected void handleInitComponentError(@Nonnull Throwable ex,@Nullable String componentClassName,@Nullable ComponentConfig config) { if (!myHandlingInitComponentError) { myHandlingInitComponentError = true; try { PluginManager.handleComponentError(ex,config); } finally { myHandlingInitComponentError = false; } } }
public static void handleComponentError(@Nonnull Throwable t,@Nullable ComponentConfig config) { if (t instanceof StartupAbortedException) { throw (StartupAbortedException)t; } PluginId pluginId = null; if (config != null) { pluginId = config.getPluginId(); } if (pluginId == null || CORE_PLUGIN.equals(pluginId)) { pluginId = componentClassName == null ? null : getPluginByClassName(componentClassName); } if (pluginId == null || CORE_PLUGIN.equals(pluginId)) { if (t instanceof PicopluginExtensionInitializationException) { pluginId = ((PicopluginExtensionInitializationException)t).getPluginId(); } } if (pluginId != null && !isSystemPlugin(pluginId)) { getLogger().warn(t); if(!ApplicationProperties.isInSandBox()) { disablePlugin(pluginId.getIdString()); } StringWriter message = new StringWriter(); message.append("Plugin '").append(pluginId.getIdString()).append("' Failed to initialize and will be disabled. "); message.append(" Please restart ").append(ApplicationNamesInfo.getInstance().getFullProductName()).append('.'); message.append("\n\n"); t.printstacktrace(new PrintWriter(message)); Main.showMessage("Plugin Error",message.toString(),t); } }
public void loadComponentsConfiguration(final ComponentConfig[] components,descriptor); }
private static ComponentConfig[] mergeComponents(ComponentConfig[] first,second); }
@NotNull ComponentConfig[] getAppComponents();
@NotNull ComponentConfig[] getProjectComponents();
@NotNull ComponentConfig[] getModuleComponents();
@NotNull @Override public ComponentConfig[] getMyComponentConfigsFromDescriptor(@NotNull IdeaPluginDescriptor plugin) { return plugin.getAppComponents(); }
@NotNull public ComponentConfig[] getComponentConfigurations() { return new ComponentConfig[0]; }
@Nullable public Object getComponent(final ComponentConfig componentConfig) { return null; }
public ComponentConfig getConfig(Class componentImplementation) { throw new UnsupportedOperationException("Method getConfig not implemented in " + getClass()); }
@NotNull public ComponentConfig[] getAppComponents() { throw new IllegalStateException(); }
@NotNull public ComponentConfig[] getProjectComponents() { throw new IllegalStateException(); }
@NotNull public ComponentConfig[] getModuleComponents() { throw new IllegalStateException(); }
@NotNull public ComponentConfig[] getMyComponentConfigsFromDescriptor(@NotNull IdeaPluginDescriptor plugin) { return plugin.getAppComponents(); }
@Override @NotNull public ComponentConfig[] getAppComponents() { return myAppComponents; }
@Override @NotNull public ComponentConfig[] getProjectComponents() { return myProjectComponents; }
@Override @NotNull public ComponentConfig[] getModuleComponents() { return myModuleComponents; }
@NotNull ComponentConfig[] getAppComponents();
@NotNull ComponentConfig[] getProjectComponents();
@NotNull ComponentConfig[] getModuleComponents();
@NotNull public ComponentConfig[] getComponentConfigurations() { return new ComponentConfig[0]; }
@Nullable public Object getComponent(final ComponentConfig componentConfig) { return null; }
public ComponentConfig getConfig(Class componentImplementation) { throw new UnsupportedOperationException("Method getConfig not implemented in " + getClass()); }
@NotNull public ComponentConfig[] getAppComponents() { throw new IllegalStateException(); }
@NotNull public ComponentConfig[] getProjectComponents() { throw new IllegalStateException(); }
@NotNull public ComponentConfig[] getModuleComponents() { throw new IllegalStateException(); }
private void loadConfiguration(final ComponentConfig[] configs,final boolean defaultProject,final PluginDescriptor descriptor) { for (ComponentConfig config : configs) { loadSingleConfig(defaultProject,config,descriptor); } }
private void loadSingleConfig(final boolean defaultProject,final ComponentConfig config,final PluginDescriptor descriptor) { if (defaultProject && !config.isLoadForDefaultProject()) return; if (!myComponentManager.isComponentSuitable(config.options)) return; myComponentManager.registerComponent(config,descriptor); }
@Override @NotNull public ComponentConfig[] getAppComponents() { return myAppComponents; }
@Override @NotNull public ComponentConfig[] getProjectComponents() { return myProjectComponents; }
@Override @NotNull public ComponentConfig[] getModuleComponents() { return myModuleComponents; }
com.intellij.openapi.components.ProjectComponent的实例源码
@After public void tearDown() throws Exception { UIUtil.invokeAndWaitIfNeeded(new Runnable() { @Override public void run() { try { myVcsManager.unregisterVcs(myVcs); myVcsManager = null; myVcs = null; ((ProjectComponent)mychangelistManager).projectClosed(); ((ProjectComponent)myVcsDirtyScopeManager).projectClosed(); tearDownProject(); if (myTempDirFixture != null) { myTempDirFixture.tearDown(); myTempDirFixture = null; } FileUtil.delete(myClientRoot); } catch (Exception e) { throw new RuntimeException(e); } } }); }
public void projectOpened() { final ProjectComponent[] components = getComponents(ProjectComponent.class); for (ProjectComponent component : components) { try { component.projectOpened(); } catch (Throwable e) { LOG.error(component.toString(),e); } } }
@Override public void updateJavaParameters(runconfigurationBase configuration,JavaParameters params,RunnerSettings runnerSettings) { if (!isApplicableFor(configuration)) { return; } ApplicationConfiguration appConfiguration = (ApplicationConfiguration) configuration; SnapShooterConfigurationSettings settings = appConfiguration.getUserData(SnapShooterConfigurationSettings.SNAP_SHOOTER_KEY); if (settings == null) { settings = new SnapShooterConfigurationSettings(); appConfiguration.putUserData(SnapShooterConfigurationSettings.SNAP_SHOOTER_KEY,settings); } if (appConfiguration.ENABLE_SWING_INSPECTOR) { settings.setLastPort(NetUtils.tryToFindAvailableSocketPort()); } if (appConfiguration.ENABLE_SWING_INSPECTOR && settings.getLastPort() != -1) { params.getProgramParametersList().prepend(appConfiguration.MAIN_CLASS_NAME); params.getProgramParametersList().prepend(Integer.toString(settings.getLastPort())); // add +1 because idea_rt.jar will be added as the last entry to the classpath params.getProgramParametersList().prepend(Integer.toString(params.getClasspath().getPathList().size() + 1)); Set<String> paths = new TreeSet<String>(); paths.add(PathUtil.getJarPathForClass(SnapShooter.class)); // ui-designer-impl paths.add(PathUtil.getJarPathForClass(BaseComponent.class)); // appcore-api paths.add(PathUtil.getJarPathForClass(ProjectComponent.class)); // openapi paths.add(PathUtil.getJarPathForClass(LwComponent.class)); // UIDesignerCore paths.add(PathUtil.getJarPathForClass(GridConstraints.class)); // forms_rt paths.add(PathUtil.getJarPathForClass(PaletteGroup.class)); // openapi paths.add(PathUtil.getJarPathForClass(LafManagerListener.class)); // ui-impl paths.add(PathUtil.getJarPathForClass(DataProvider.class)); // action-system-openapi paths.add(PathUtil.getJarPathForClass(XmlStringUtil.class)); // idea paths.add(PathUtil.getJarPathForClass(Navigatable.class)); // pom paths.add(PathUtil.getJarPathForClass(AreaInstance.class)); // extensions paths.add(PathUtil.getJarPathForClass(Formlayout.class)); // jgoodies paths.addAll(PathManager.getUtilClasspath()); for(String path: paths) { params.getClasspath().addFirst(path); } params.setMainClass("com.intellij.uiDesigner.snapShooter.SnapShooter"); } }
protected void startChangeProvider() { ((StartupManagerImpl) StartupManager.getInstance(myProject)).runPostStartupActivities(); mychangelistManager = changelistManager.getInstance(myProject); ((ProjectComponent) mychangelistManager).projectOpened(); myDirtyScopeManager = VcsDirtyScopeManager.getInstance(myProject); ((ProjectComponent) myDirtyScopeManager).projectOpened(); // mapping myVcsManager = ProjectLevelVcsManager.getInstance(myProject); myVcsManager.setDirectoryMappings(Collections.singletonList(new VcsDirectoryMapping(myBaseVf.getPath(),FossilVcs.NAME))); }
protected void startChangeProvider() { ((StartupManagerImpl) StartupManager.getInstance(myProject)).runPostStartupActivities(); mychangelistManager = changelistManager.getInstance(myProject); ((ProjectComponent) mychangelistManager).projectOpened(); myDirtyScopeManager = VcsDirtyScopeManager.getInstance(myProject); ((ProjectComponent) myDirtyScopeManager).projectOpened(); // mapping myVcsManager = ProjectLevelVcsManager.getInstance(myProject); myVcsManager.setDirectoryMappings(Collections.singletonList(new VcsDirectoryMapping(myBaseVf.getPath(),FossilVcs.NAME))); }
protected void tearDownProject() throws Exception { if (myProject != null) { ((ProjectComponent) VcsDirtyScopeManager.getInstance(myProject)).projectClosed(); ((ProjectComponent) changelistManager.getInstance(myProject)).projectClosed(); ((changelistManagerImpl)changelistManager.getInstance(myProject)).stopEveryThingIfInTestMode(); ((ProjectComponent)ProjectLevelVcsManager.getInstance(myProject)).projectClosed(); myProject = null; } if (myProjectFixture != null) { myProjectFixture.tearDown(); myProjectFixture = null; } }
private void projectOpened() { final ProjectComponent[] components = getComponents(ProjectComponent.class); for (ProjectComponent component : components) { try { component.projectOpened(); } catch (Throwable e) { LOG.error(component.toString(),e); } } }
private void projectClosed() { List<ProjectComponent> components = new ArrayList<ProjectComponent>(Arrays.asList(getComponents(ProjectComponent.class))); Collections.reverse(components); for (ProjectComponent component : components) { try { component.projectClosed(); } catch (Throwable e) { LOG.error(e); } } }
public void projectOpened() { final ProjectComponent[] components = getComponents(ProjectComponent.class); for (ProjectComponent component : components) { try { component.projectOpened(); } catch (Throwable e) { LOG.error(component.toString(),e); } } }
protected void tearDownProject() throws Exception { if (myProject != null) { ((ProjectComponent) VcsDirtyScopeManager.getInstance(myProject)).projectClosed(); ((ProjectComponent) changelistManager.getInstance(myProject)).projectClosed(); ((changelistManagerImpl)changelistManager.getInstance(myProject)).stopEveryThingIfInTestMode(); ((ProjectComponent)ProjectLevelVcsManager.getInstance(myProject)).projectClosed(); myProject = null; } if (myProjectFixture != null) { myProjectFixture.tearDown(); myProjectFixture = null; } }
private void projectOpened() { final ProjectComponent[] components = getComponents(ProjectComponent.class); for (ProjectComponent component : components) { try { component.projectOpened(); } catch (Throwable e) { LOG.error(component.toString(),e); } } }
private void projectClosed() { List<ProjectComponent> components = new ArrayList<ProjectComponent>(Arrays.asList(getComponents(ProjectComponent.class))); Collections.reverse(components); for (ProjectComponent component : components) { try { component.projectClosed(); } catch (Throwable e) { LOG.error(e); } } }
public void projectOpened() { final ProjectComponent[] components = getComponents(ProjectComponent.class); for (ProjectComponent component : components) { try { component.projectOpened(); } catch (Throwable e) { LOG.error(component.toString(),e); } } }
@Override protected void tearDown() throws Exception { removeLibs(); ((ProjectComponent)ModuleManager.getInstance(myProject)).projectClosed(); super.tearDown(); }
@Override public void updateJavaParameters(runconfigurationBase configuration,settings); } if (appConfiguration.ENABLE_SWING_INSPECTOR) { try { settings.setLastPort(NetUtils.findAvailableSocketPort()); } catch(IOException ex) { settings.setLastPort(-1); } } if (appConfiguration.ENABLE_SWING_INSPECTOR && settings.getLastPort() != -1) { params.getProgramParametersList().prepend(appConfiguration.MAIN_CLASS_NAME); params.getProgramParametersList().prepend(Integer.toString(settings.getLastPort())); // add +1 because idea_rt.jar will be added as the last entry to the classpath params.getProgramParametersList().prepend(Integer.toString(params.getClasspath().getPathList().size() + 1)); Set<String> paths = new TreeSet<String>(); paths.add(PathUtil.getJarPathForClass(SnapShooter.class)); // ui-designer-impl paths.add(PathUtil.getJarPathForClass(BaseComponent.class)); // appcore-api paths.add(PathUtil.getJarPathForClass(ProjectComponent.class)); // openapi paths.add(PathUtil.getJarPathForClass(LwComponent.class)); // UIDesignerCore paths.add(PathUtil.getJarPathForClass(GridConstraints.class)); // forms_rt paths.add(PathUtil.getJarPathForClass(LafManagerListener.class)); // ui-impl paths.add(PathUtil.getJarPathForClass(DataProvider.class)); // action-system-openapi paths.add(PathUtil.getJarPathForClass(XmlStringUtil.class)); // idea paths.add(PathUtil.getJarPathForClass(Navigatable.class)); // pom paths.add(PathUtil.getJarPathForClass(AreaInstance.class)); // extensions paths.add(PathUtil.getJarPathForClass(Formlayout.class)); // jgoodies paths.addAll(PathManager.getUtilClasspath()); for(String path: paths) { params.getClasspath().addFirst(path); } params.setMainClass("com.intellij.uiDesigner.snapShooter.SnapShooter"); } }
@Before @Order(0) public void setUp() throws Throwable { PlatformTestCase.initPlatformlangPrefix(); IdeaTestApplication.getInstance(null); String tempFileName = getClass().getName() + "-" + new Random().nextInt(); myProjectFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(tempFileName).getFixture(); edt(new ThrowableRunnable<Exception>() { @Override public void run() throws Exception { myProjectFixture.setUp(); } }); myProject = myProjectFixture.getProject(); ((ProjectComponent)changelistManager.getInstance(myProject)).projectOpened(); ((ProjectComponent)VcsDirtyScopeManager.getInstance(myProject)).projectOpened(); myProjectRoot = myProject.getBasePath(); myProjectDir = myProject.getBaseDir(); myTestRoot = myProjectRoot; myPlatformFacade = ServiceManager.getService(myProject,GitPlatformFacade.class); myGit = ServiceManager.getService(myProject,Git.class); mySettings = myPlatformFacade.getSettings(myProject); mySettings.getAppSettings().setPathToGit(GitExecutor.GIT_EXECUTABLE); // dynamic overriding is used instead of making it in plugin.xml,// because MockVcsHelper is not ready to be a full featured implementation for all tests. myVcsHelper = overrideService(myProject,AbstractVcsHelper.class,MockVcsHelper.class); mychangelistManager = (changelistManagerImpl)myPlatformFacade.getchangelistManager(myProject); myNotificator = (TestNotificator)ServiceManager.getService(myProject,Notificator.class); myVcs = GitVcs.getInstance(myProject); virtualCommits = new GitTestVirtualCommitsHolder(); myAsyncTasks = new ArrayList<Future>(); cd(myProjectRoot); myRepository = GitTestUtil.createRepository(myProject,myProjectRoot); ProjectLevelVcsManagerImpl vcsManager = (ProjectLevelVcsManagerImpl)ProjectLevelVcsManager.getInstance(myProject); AbstractVcs vcs = vcsManager.findVcsByName("Git"); Assert.assertEquals(1,vcsManager.getRootsUnderVcs(vcs).length); assumeSupportedGitVersion(); }
@Override public void updateJavaParameters(runconfigurationBase configuration,OwnJavaParameters params,settings); } if (appConfiguration.ENABLE_SWING_INSPECTOR) { try { settings.setLastPort(NetUtils.findAvailableSocketPort()); } catch(IOException ex) { settings.setLastPort(-1); } } if (appConfiguration.ENABLE_SWING_INSPECTOR && settings.getLastPort() != -1) { params.getProgramParametersList().prepend(appConfiguration.MAIN_CLASS_NAME); params.getProgramParametersList().prepend(Integer.toString(settings.getLastPort())); // add +1 because idea_rt.jar will be added as the last entry to the classpath params.getProgramParametersList().prepend(Integer.toString(params.getClasspath().getPathList().size() + 1)); Set<String> paths = new TreeSet<String>(); paths.add(PathUtil.getJarPathForClass(SnapShooter.class)); // ui-designer-impl paths.add(PathUtil.getJarPathForClass(BaseComponent.class)); // appcore-api paths.add(PathUtil.getJarPathForClass(ProjectComponent.class)); // openapi paths.add(PathUtil.getJarPathForClass(LwComponent.class)); // UIDesignerCore paths.add(PathUtil.getJarPathForClass(GridConstraints.class)); // forms_rt paths.add(PathUtil.getJarPathForClass(LafManagerListener.class)); // ui-impl paths.add(PathUtil.getJarPathForClass(DataProvider.class)); // action-system-openapi paths.add(PathUtil.getJarPathForClass(XmlStringUtil.class)); // idea paths.add(PathUtil.getJarPathForClass(Navigatable.class)); // pom paths.add(PathUtil.getJarPathForClass(AreaInstance.class)); // extensions paths.add(PathUtil.getJarPathForClass(Formlayout.class)); // jgoodies paths.addAll(PathManager.getUtilClasspath()); for(String path: paths) { params.getClasspath().addFirst(path); } params.setMainClass("com.intellij.uiDesigner.snapShooter.SnapShooter"); } }
@Override protected void tearDown() throws Exception { removeLibs(); ((ProjectComponent)ModuleManager.getInstance(myProject)).projectClosed(); super.tearDown(); }
com.intellij.uiDesigner.propertyInspector.properties.BorderProperty的实例源码
@NotNull @Override protected BorderProperty compute() { return new BorderProperty(null); }
private static boolean isPropertyDescriptor(final IProperty prop) { return !prop.getName().equals(BorderProperty.NAME) && !prop.getName().equals(RadTabbedPane.TAB_TITLE_PROPERTY) && !prop.getName().equals(RadTabbedPane.TAB_TOOLTIP_PROPERTY); }
@NotNull @Override protected BorderProperty compute() { return new BorderProperty(null); }
private static boolean isPropertyDescriptor(final IProperty prop) { return !prop.getName().equals(BorderProperty.NAME) && !prop.getName().equals(RadTabbedPane.TAB_TITLE_PROPERTY) && !prop.getName().equals(RadTabbedPane.TAB_TOOLTIP_PROPERTY); }
@NotNull @Override protected BorderProperty compute() { return new BorderProperty(null); }
private static boolean isPropertyDescriptor(final IProperty prop) { return !prop.getName().equals(BorderProperty.NAME) && !prop.getName().equals(RadTabbedPane.TAB_TITLE_PROPERTY) && !prop.getName().equals(RadTabbedPane.TAB_TOOLTIP_PROPERTY); }
com.intellij.uiDesigner.propertyInspector.properties.ClientPropertiesProperty的实例源码
private void writeClientProperties(final XmlWriter writer) { if (myModule == null) { return; } boolean haveClientProperties = false; try { ClientPropertiesProperty cpp = ClientPropertiesProperty.getInstance(getProject()); for (Property prop : cpp.getChildren(this)) { ClientPropertyProperty clientProp = (ClientPropertyProperty)prop; final Object value = getDelegee().getClientProperty(clientProp.getName()); if (value != null) { if (!haveClientProperties) { writer.startElement(UIFormXmlConstants.ELEMENT_CLIENT_PROPERTIES); haveClientProperties = true; } writer.startElement(clientProp.getName()); writer.addAttribute(UIFormXmlConstants.ATTRIBUTE_CLASS,value.getClass().getName()); writer.addAttribute(UIFormXmlConstants.ATTRIBUTE_VALUE,value.toString()); writer.endElement(); } } } finally { if (haveClientProperties) { writer.endElement(); } } }
private void writeClientProperties(final XmlWriter writer) { if (myModule == null) { return; } boolean haveClientProperties = false; try { ClientPropertiesProperty cpp = ClientPropertiesProperty.getInstance(getProject()); for (Property prop : cpp.getChildren(this)) { ClientPropertyProperty clientProp = (ClientPropertyProperty)prop; final Object value = getDelegee().getClientProperty(clientProp.getName()); if (value != null) { if (!haveClientProperties) { writer.startElement(UIFormXmlConstants.ELEMENT_CLIENT_PROPERTIES); haveClientProperties = true; } writer.startElement(clientProp.getName()); writer.addAttribute(UIFormXmlConstants.ATTRIBUTE_CLASS,value.toString()); writer.endElement(); } } } finally { if (haveClientProperties) { writer.endElement(); } } }
private void writeClientProperties(final XmlWriter writer) { if (myModule == null) { return; } boolean haveClientProperties = false; try { ClientPropertiesProperty cpp = ClientPropertiesProperty.getInstance(getProject()); for (Property prop : cpp.getChildren(this)) { ClientPropertyProperty clientProp = (ClientPropertyProperty)prop; final Object value = getDelegee().getClientProperty(clientProp.getName()); if (value != null) { if (!haveClientProperties) { writer.startElement(UIFormXmlConstants.ELEMENT_CLIENT_PROPERTIES); haveClientProperties = true; } writer.startElement(clientProp.getName()); writer.addAttribute(UIFormXmlConstants.ATTRIBUTE_CLASS,value.toString()); writer.endElement(); } } } finally { if (haveClientProperties) { writer.endElement(); } } }
关于delphi – 如何修改TComponentProperty以仅在下拉列表中显示特定项目?和delphi下拉框可编辑的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于com.intellij.openapi.components.ComponentConfig的实例源码、com.intellij.openapi.components.ProjectComponent的实例源码、com.intellij.uiDesigner.propertyInspector.properties.BorderProperty的实例源码、com.intellij.uiDesigner.propertyInspector.properties.ClientPropertiesProperty的实例源码等相关知识的信息别忘了在本站进行查找喔。
本文标签: