public void setArea(@Nullable DesignerEditorPanel designer, @Nullable EditableArea area) {
    PropertyTableTab[] tabs = designer == null ? null : designer.getPropertyTableTabs();
    if (!Arrays.equals(myTabs, tabs)) {
      myTabs = tabs;
      myTabPanel.removeAll();

      if (tabs != null && tabs.length > 1) {
        if (!ArrayUtil.contains(myCurrentTab, tabs)) {
          myCurrentTab = tabs[0];
        }

        for (PropertyTableTab tab : tabs) {
          myTabPanel.add(new TableTabAction(this, tab).getButton());
        }
      }
      else {
        myCurrentTab = null;
      }

      myTitleLabel.setVisible(myCurrentTab == null);
      myTabPanel.revalidate();
    }

    TablePanelActionPolicy policy = designer == null ? TablePanelActionPolicy.EMPTY : designer.getTablePanelActionPolicy();
    if (!Comparing.equal(myActionPolicy, policy)) {
      myActionPolicy = policy;

      for (AnAction action : myActions) {
        if (action instanceof Separator) {
          continue;
        }

        boolean visible = policy.showAction(action);

        Presentation presentation = action.getTemplatePresentation();
        presentation.setVisible(visible);

        JComponent button = (JComponent)presentation.getClientProperty(BUTTON_KEY);
        if (button != null) {
          button.setVisible(visible);
        }
      }

      myActionPanel.revalidate();
    }

    myPropertyTable.setArea(designer, area);
  }
public void setArea(@Nullable DesignerEditorPanel designer, @Nullable EditableArea area)