GVKun编程网logo

delphi – 如何修改TComponentProperty以仅在下拉列表中显示特定项目?(delphi下拉框可编辑)

20

在本文中,我们将带你了解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下拉框可编辑)

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.

有人可以帮忙吗?

谢谢.

解决方法

当调用TMenuItemProp.GetValues()时,您需要查看当前正在编辑其MenuItem属性的TMenuItemSelector对象,查看该对象是否已分配PopupMenu,如果是,则循环遍历其项目,例如:

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的实例源码

com.intellij.openapi.components.ComponentConfig的实例源码

项目:intellij-ce-playground    文件:ComponentManagerImpl.java   
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;
}
项目:intellij-ce-playground    文件:ComponentManagerImpl.java   
@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;
}
项目:intellij-ce-playground    文件:ComponentManagerImpl.java   
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());
  }
}
项目:tools-idea    文件:PluginManager.java   
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);
  }
}
项目:intellij-ce-playground    文件:IdeaPluginDescriptorImpl.java   
private static ComponentConfig[] mergeComponents(ComponentConfig[] first,ComponentConfig[] second) {
  if (first == null) {
    return second;
  }
  if (second == null) {
    return first;
  }
  return ArrayUtil.mergeArrays(first,second);
}
项目:tools-idea    文件:ApplicationImpl.java   
@Override
protected void handleInitComponentError(Throwable t,ComponentConfig config) {
  if (!myHandlingInitComponentError) {
    myHandlingInitComponentError = true;
    try {
      PluginManager.handleComponentError(t,componentClassName,config);
    }
    finally {
      myHandlingInitComponentError = false;
    }
  }
}
项目:tools-idea    文件:ComponentManagerConfigurator.java   
public void loadComponentsConfiguration(final ComponentConfig[] components,final PluginDescriptor descriptor,final boolean defaultProject) {
  if (components == null) return;

  loadConfiguration(components,defaultProject,descriptor);
}
项目:tools-idea    文件:IdeaPluginDescriptorImpl.java   
private static ComponentConfig[] mergeComponents(ComponentConfig[] first,second);
}
项目:consulo    文件:PlatformComponentManagerImpl.java   
@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;
    }
  }
}
项目:consulo    文件:PluginManager.java   
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);
  }
}
项目:consulo    文件:ComponentManagerConfigurator.java   
public void loadComponentsConfiguration(final ComponentConfig[] components,descriptor);
}
项目:consulo    文件:IdeaPluginDescriptorImpl.java   
private static ComponentConfig[] mergeComponents(ComponentConfig[] first,second);
}
项目:intellij-ce-playground    文件:IdeaPluginDescriptor.java   
@NotNull
ComponentConfig[] getAppComponents();
项目:intellij-ce-playground    文件:IdeaPluginDescriptor.java   
@NotNull
ComponentConfig[] getProjectComponents();
项目:intellij-ce-playground    文件:IdeaPluginDescriptor.java   
@NotNull
ComponentConfig[] getModuleComponents();
项目:intellij-ce-playground    文件:ApplicationImpl.java   
@NotNull
@Override
public ComponentConfig[] getMyComponentConfigsFromDescriptor(@NotNull IdeaPluginDescriptor plugin) {
  return plugin.getAppComponents();
}
项目:intellij-ce-playground    文件:DummyProject.java   
@NotNull
public ComponentConfig[] getComponentConfigurations() {
  return new ComponentConfig[0];
}
项目:intellij-ce-playground    文件:DummyProject.java   
@Nullable
public Object getComponent(final ComponentConfig componentConfig) {
  return null;
}
项目:intellij-ce-playground    文件:DummyProject.java   
public ComponentConfig getConfig(Class componentImplementation) {
  throw new UnsupportedOperationException("Method getConfig not implemented in " + getClass());
}
项目:intellij-ce-playground    文件:PluginNode.java   
@NotNull
public ComponentConfig[] getAppComponents() {
  throw new IllegalStateException();
}
项目:intellij-ce-playground    文件:PluginNode.java   
@NotNull
public ComponentConfig[] getProjectComponents() {
  throw new IllegalStateException();
}
项目:intellij-ce-playground    文件:PluginNode.java   
@NotNull
public ComponentConfig[] getModuleComponents() {
  throw new IllegalStateException();
}
项目:intellij-ce-playground    文件:ComponentManagerImpl.java   
@NotNull
public ComponentConfig[] getMyComponentConfigsFromDescriptor(@NotNull IdeaPluginDescriptor plugin) {
  return plugin.getAppComponents();
}
项目:intellij-ce-playground    文件:IdeaPluginDescriptorImpl.java   
@Override
@NotNull
public ComponentConfig[] getAppComponents() {
  return myAppComponents;
}
项目:intellij-ce-playground    文件:IdeaPluginDescriptorImpl.java   
@Override
@NotNull
public ComponentConfig[] getProjectComponents() {
  return myProjectComponents;
}
项目:intellij-ce-playground    文件:IdeaPluginDescriptorImpl.java   
@Override
@NotNull
public ComponentConfig[] getModuleComponents() {
  return myModuleComponents;
}
项目:tools-idea    文件:IdeaPluginDescriptor.java   
@NotNull
ComponentConfig[] getAppComponents();
项目:tools-idea    文件:IdeaPluginDescriptor.java   
@NotNull
ComponentConfig[] getProjectComponents();
项目:tools-idea    文件:IdeaPluginDescriptor.java   
@NotNull
ComponentConfig[] getModuleComponents();
项目:tools-idea    文件:DummyProject.java   
@NotNull
public ComponentConfig[] getComponentConfigurations() {
  return new ComponentConfig[0];
}
项目:tools-idea    文件:DummyProject.java   
@Nullable
public Object getComponent(final ComponentConfig componentConfig) {
  return null;
}
项目:tools-idea    文件:DummyProject.java   
public ComponentConfig getConfig(Class componentImplementation) {
  throw new UnsupportedOperationException("Method getConfig not implemented in " + getClass());
}
项目:tools-idea    文件:PluginNode.java   
@NotNull
public ComponentConfig[] getAppComponents() {
  throw new IllegalStateException();
}
项目:tools-idea    文件:PluginNode.java   
@NotNull
public ComponentConfig[] getProjectComponents() {
  throw new IllegalStateException();
}
项目:tools-idea    文件:PluginNode.java   
@NotNull
public ComponentConfig[] getModuleComponents() {
  throw new IllegalStateException();
}
项目:tools-idea    文件:ComponentManagerConfigurator.java   
private void loadConfiguration(final ComponentConfig[] configs,final boolean defaultProject,final PluginDescriptor descriptor) {
  for (ComponentConfig config : configs) {
    loadSingleConfig(defaultProject,config,descriptor);
  }
}
项目:tools-idea    文件:ComponentManagerConfigurator.java   
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);
}
项目:tools-idea    文件:IdeaPluginDescriptorImpl.java   
@Override
@NotNull
public ComponentConfig[] getAppComponents() {
  return myAppComponents;
}
项目:tools-idea    文件:IdeaPluginDescriptorImpl.java   
@Override
@NotNull
public ComponentConfig[] getProjectComponents() {
  return myProjectComponents;
}
项目:tools-idea    文件:IdeaPluginDescriptorImpl.java   
@Override
@NotNull
public ComponentConfig[] getModuleComponents() {
  return myModuleComponents;
}

com.intellij.openapi.components.ProjectComponent的实例源码

com.intellij.openapi.components.ProjectComponent的实例源码

项目:tools-idea    文件:IgnoredFilesTest.java   
@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);
      }
    }
  });
}
项目:intellij-ce-playground    文件:MockProject.java   
public void projectOpened() {
  final ProjectComponent[] components = getComponents(ProjectComponent.class);
  for (ProjectComponent component : components) {
    try {
      component.projectOpened();
    }
    catch (Throwable e) {
      LOG.error(component.toString(),e);
    }
  }
}
项目:intellij-ce-playground    文件:SnapShooterConfigurationExtension.java   
@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");
  }
}
项目:fossil4idea    文件:BaseFossilTest.java   
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)));
}
项目:fossil4idea    文件:BaseTwoRootedFossilTest.java   
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)));
}
项目:tools-idea    文件:AbstractVcsTestCase.java   
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;
  }
}
项目:tools-idea    文件:ProjectImpl.java   
private void projectOpened() {
  final ProjectComponent[] components = getComponents(ProjectComponent.class);
  for (ProjectComponent component : components) {
    try {
      component.projectOpened();
    }
    catch (Throwable e) {
      LOG.error(component.toString(),e);
    }
  }
}
项目:tools-idea    文件:ProjectImpl.java   
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);
    }
  }
}
项目:tools-idea    文件:MockProject.java   
public void projectOpened() {
  final ProjectComponent[] components = getComponents(ProjectComponent.class);
  for (ProjectComponent component : components) {
    try {
      component.projectOpened();
    }
    catch (Throwable e) {
      LOG.error(component.toString(),e);
    }
  }
}
项目:consulo    文件:AbstractVcsTestCase.java   
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;
  }
}
项目:consulo    文件:ProjectImpl.java   
private void projectOpened() {
  final ProjectComponent[] components = getComponents(ProjectComponent.class);
  for (ProjectComponent component : components) {
    try {
      component.projectOpened();
    }
    catch (Throwable e) {
      LOG.error(component.toString(),e);
    }
  }
}
项目:consulo    文件:ProjectImpl.java   
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);
    }
  }
}
项目:consulo    文件:MockProject.java   
public void projectOpened() {
  final ProjectComponent[] components = getComponents(ProjectComponent.class);
  for (ProjectComponent component : components) {
    try {
      component.projectOpened();
    }
    catch (Throwable e) {
      LOG.error(component.toString(),e);
    }
  }
}
项目:tools-idea    文件:OrderEntryTest.java   
@Override
protected void tearDown() throws Exception {
  removeLibs();
  ((ProjectComponent)ModuleManager.getInstance(myProject)).projectClosed();
  super.tearDown();
}
项目:tools-idea    文件:SnapShooterConfigurationExtension.java   
@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");
  }
}
项目:tools-idea    文件:GitCucumberWorld.java   
@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();
}
项目:consulo-ui-designer    文件:SnapShooterConfigurationExtension.java   
@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");
  }
}
项目:consulo-java    文件:OrderEntryTest.java   
@Override
protected void tearDown() throws Exception {
  removeLibs();
  ((ProjectComponent)ModuleManager.getInstance(myProject)).projectClosed();
  super.tearDown();
}

com.intellij.uiDesigner.propertyInspector.properties.BorderProperty的实例源码

com.intellij.uiDesigner.propertyInspector.properties.BorderProperty的实例源码

项目:intellij-ce-playground    文件:StringDescriptorinspection.java   
@NotNull
@Override
protected BorderProperty compute() {
  return new BorderProperty(null);
}
项目:intellij-ce-playground    文件:I18nForminspection.java   
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);
}
项目:tools-idea    文件:StringDescriptorinspection.java   
@NotNull
@Override
protected BorderProperty compute() {
  return new BorderProperty(null);
}
项目:tools-idea    文件:I18nForminspection.java   
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);
}
项目:consulo-ui-designer    文件:StringDescriptorinspection.java   
@NotNull
@Override
protected BorderProperty compute() {
  return new BorderProperty(null);
}
项目:consulo-ui-designer    文件:I18nForminspection.java   
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的实例源码

com.intellij.uiDesigner.propertyInspector.properties.ClientPropertiesProperty的实例源码

@H_301_1@项目:intellij-ce-playground    @H_301_1@文件:RadComponent.java   
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();
    }
  }
}
@H_301_1@项目:tools-idea    @H_301_1@文件:RadComponent.java   
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();
    }
  }
}
@H_301_1@项目:consulo-ui-designer    @H_301_1@文件:RadComponent.java   
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的实例源码等相关知识的信息别忘了在本站进行查找喔。

本文标签: