hide DP registration details

This commit is contained in:
Konstantin Bulenkov
2011-04-26 18:30:00 +04:00
parent e681712469
commit 9ec367f032
11 changed files with 23 additions and 12 deletions
@@ -188,7 +188,7 @@ public class ArtifactEditorImpl implements ArtifactEditorEx {
public JComponent createMainComponent() {
mySourceItemsTree.initTree();
myLayoutTreeComponent.initTree();
myMainPanel.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, new TypeSafeDataProviderAdapter(new MyDataProvider()));
DataManager.registerDataProvider(myMainPanel, new TypeSafeDataProviderAdapter(new MyDataProvider()));
myErrorPanelPlace.add(myValidationManager.getMainErrorPanel(), BorderLayout.CENTER);
@@ -324,7 +324,7 @@ public class AnalyzeDependenciesComponent extends MasterDetailsComponent {
myExplanationTree = new Tree(new DefaultTreeModel(buildTree()));
myExplanationTree.setRootVisible(false);
myExplanationTree.setCellRenderer(new ExplanationTreeRenderer());
myExplanationTree.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, this);
DataManager.registerDataProvider(myExplanationTree, this);
TreeUtil.expandAll(myExplanationTree);
final NavigateAction navigateAction = new NavigateAction();
navigateAction.registerCustomShortcutSet(new CustomShortcutSet(CommonShortcuts.DOUBLE_CLICK_1.getShortcuts()[0]), myExplanationTree);
@@ -48,7 +48,7 @@ public class RunContentDescriptor {
myComponent = component;
myDisplayName = displayName;
myIcon = icon;
myComponent.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, new DataProvider() {
DataManager.registerDataProvider(myComponent, new DataProvider() {
public Object getData(@NonNls final String dataId) {
if (RunContentManager.RUN_CONTENT_DESCRIPTOR.is(dataId)) {
@@ -44,7 +44,6 @@ import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.fileEditor.impl.EditorWindow;
import com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl;
import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
@@ -70,7 +69,10 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.FocusManager;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -128,7 +130,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
myPanel.add(myHistoryViewer.getComponent());
myPanel.add(myConsoleEditor.getComponent());
setupComponents();
myPanel.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, new TypeSafeDataProviderAdapter(this));
DataManager.registerDataProvider(myPanel, new TypeSafeDataProviderAdapter(this));
myUpdateQueue = new MergingUpdateQueue("ConsoleUpdateQueue", 300, true, null);
Disposer.register(this, myUpdateQueue);
myHistoryViewer.getComponent().addComponentListener(new ComponentAdapter() {
@@ -132,7 +132,7 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
myComponentPlace.setLayout(new GridBagLayout());
myComponentPlace.add(myEditor.getComponent(), new GridBagConstraints(0,0,1,1,1.0,1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0,0,0,0), 0,0));
myComponentPlace.doLayout();
myWholePanel.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, new TypeSafeDataProviderAdapter(new MyDataProvider()));
DataManager.registerDataProvider(myWholePanel, new TypeSafeDataProviderAdapter(new MyDataProvider()));
final JBScrollPane scrollPane = new JBScrollPane(myWholePanel);
scrollPane.setBorder(null);
return scrollPane;
@@ -319,7 +319,7 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta
return myContentUI;
}
final DataProvider provider = (DataProvider)getClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER);
final DataProvider provider = DataManager.getDataProvider(this);
return provider != null ? provider.getData(dataId) : null;
}
}
@@ -75,4 +75,13 @@ public abstract class DataManager {
public static void registerDataProvider(JComponent component, DataProvider provider) {
component.putClientProperty(CLIENT_PROPERTY_DATA_PROVIDER, provider);
}
@Nullable
public static DataProvider getDataProvider(@NotNull JComponent component) {
return (DataProvider)component.getClientProperty(CLIENT_PROPERTY_DATA_PROVIDER);
}
public static void removeDataProvider(@NotNull JComponent component) {
component.putClientProperty(CLIENT_PROPERTY_DATA_PROVIDER, null);
}
}
@@ -147,7 +147,7 @@ public class JBList extends JList implements ComponentWithEmptyText, ComponentWi
}
public void setDataProvider(DataProvider provider) {
putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, provider);
DataManager.registerDataProvider(this, provider);
}
public void disableEmptyText() {
@@ -116,7 +116,7 @@ public class DataManagerImpl extends DataManager implements ApplicationComponent
dataProvider = new TypeSafeDataProviderAdapter((TypeSafeDataProvider) component);
}
else if (component instanceof JComponent) {
dataProvider = (DataProvider)((JComponent)component).getClientProperty(CLIENT_PROPERTY_DATA_PROVIDER);
dataProvider = getDataProvider((JComponent)component);
}
return dataProvider;
@@ -94,7 +94,7 @@ public class StatisticsPanel implements DataProvider {
// Contex menu in Table
PopupHandler.installPopupHandler(myStatisticsTableView, IdeActions.GROUP_TESTTREE_POPUP, ActionPlaces.TESTTREE_VIEW_POPUP);
// set this statistic tab as dataprovider for test's table view
myStatisticsTableView.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, this);
DataManager.registerDataProvider(myStatisticsTableView, this);
}
public void addPropagateSelectionListener(final PropagateSelectionHandler handler) {
@@ -313,7 +313,7 @@ public class DirDiffPanel implements Disposable {
}
myCurrentElement = null;
myDiffPanel.remove(getErrorLabel());
myDiffPanel.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, null);
DataManager.removeDataProvider(myDiffPanel);
}
public JComponent getPanel() {