All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cedarsoft.spring.rcp.hierarchy.AbstractHierarchyLayer Maven / Gradle / Ivy

The newest version!
package com.cedarsoft.spring.rcp.hierarchy;

import com.cedarsoft.lookup.DynamicLookup;
import com.cedarsoft.lookup.Lookup;
import com.cedarsoft.utils.CachingChildDetector;
import com.cedarsoft.utils.ChildDetector;
import com.cedarsoft.utils.Renderer;
import org.jetbrains.annotations.NotNull;

/**
 *
 */
public abstract class AbstractHierarchyLayer implements HierarchyLayer {
  @NotNull
  private final DynamicLookup lookup = new DynamicLookup();

  protected void registerChildDetector( @NotNull ChildDetector childDetector ) {
    lookup.addValue( childDetector );
  }

  protected void registerRenderer( @NotNull Renderer renderer ) {
    lookup.addValue( renderer );
  }

  protected void registerDetailsComponentProvider( @NotNull DetailsProvider

provider ) { lookup.addValue( provider ); } protected void registerTitleComponentProvider( @NotNull TitleProvider

provider ) { lookup.addValue( provider ); } @Override @NotNull public Lookup getLookup() { return lookup; } @Override public void handleModified( @NotNull Object parent ) { ChildDetector detector = lookup.lookup( ChildDetector.class ); if ( detector != null ) { if ( detector instanceof CachingChildDetector ) { ( ( CachingChildDetector ) detector ).handleModified( parent ); } } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy