public void validate(final IValidation results) {
    if (_scatterNumPoints.get() < 1) {
      results.error(SCATTER_NUM_POINTS, "The number of scatter points must be > 0.");
    }

    if (_histogramNumCells.get() < 1) {
      results.error(HISTOGRAM_NUM_CELLS, "The number of histogram cells must be > 0.");
    }

    if (_histogramMinValue.get() > _histogramMaxValue.get()) {
      results.error(
          HISTOGRAM_MIN_VALUE, "The histogram minimum value must be less than the maximum value.");
    }

    if (_pieNumWedges.get() < 2) {
      results.error(PIE_NUM_WEDGES, "The number of pie wedges must be >= 2.");
    }

    if (_gridImageNumRows.get() < 1) {
      results.error(GRID_IMAGE_NUM_ROWS, "The number of grid image rows must be > 0.");
    }

    if (_gridImageNumCols.get() < 1) {
      results.error(GRID_IMAGE_NUM_COLS, "The number of grid image columns must be > 0.");
    }
  }
  public void updateOutputName() {

    String nameSuffix = "_" + _filterMethodProp.get().getAbbrev() + _size.get();
    String outputName =
        _inputGrid.isNull()
            ? ""
            : _inputGrid
                .get()
                .getMapper()
                .createOutputDisplayName(_inputGrid.get().getDisplayName(), nameSuffix);
    _outputGridName.set(outputName);
  }
 public String getKernel() {
   float[][] kernel = _filterMethodProp.get().getFilter().getDefaultKernel(_size.get());
   StringBuilder builder = new StringBuilder();
   Formatter formatter = new Formatter(builder);
   for (float[] row : kernel) {
     for (float element : row) {
       formatter.format(" %11.9f", element);
     }
     formatter.format("\n");
   }
   return builder.toString();
 }
  /** @throws CoreException */
  @Override
  public void run(IProgressMonitor monitor, ILogger logger, IRepository repository)
      throws CoreException {

    Grid3d property = _inputGrid.get();
    int size = _size.get();
    String propertyName = _outputGridName.get();
    String outputComments = _outputComments.get();
    float[][] kernel = _filterMethodProp.get().getFilter().getDefaultKernel(_size.get());

    // apply the filter on the horizon
    float[][] result = _filterMethodProp.get().getFilter().execute(property, size, kernel, monitor);

    // Create the new property
    Grid3d newProperty = Grid3dFactory.create(repository, property, result, propertyName);
    newProperty.setComment(outputComments);
    try {
      newProperty.update();
    } catch (IOException ex) {
      throw new RuntimeException(ex.getMessage());
    }
  }
  public void validate(final IValidation results) {
    // Validate the well bore radius is positive.
    final int size = _size.get();
    if (size <= 0) {
      results.error(WELL_BORE_RADIUS, "Invalid bore radius: " + size);
    } else if (size == 0) {
      results.warning(WELL_BORE_RADIUS, "Zero bore radius specified.");
    }

    // Validate the well bore color is non-null.
    if (_color.isNull()) {
      results.error(WELL_BORE_COLOR, "No bore color specified.");
    }
  }
 @Override
 public void propertyChanged(String key) {
   // Auto-generate an output name from the input grid.
   if (key.equals(_inputGrid.getKey())) {
     updateOutputName();
   } else if (key.equals(_filterMethodProp.getKey())) {
     _kernelString.set(getKernel());
     updateOutputName();
   } else if (key.equals(_size.getKey())) {
     if (_filterMethodProp.get().getFilter().validateSize(_size.get())) {
       _kernelString.set(getKernel());
       updateOutputName();
     }
   }
 }
  @Override
  public void validate(IValidation results) {
    // Validate the input grid is non-null and of the correct type.
    if (_inputGrid.isNull()) {
      results.error(_inputGrid, "No input grid specified.");
    }

    // Validate the output name is non-zero length.
    if (_outputGridName.isEmpty()) {
      results.error(_outputGridName, "No output grid name specified.");
    }

    // Validate the filter size
    if (!_filterMethodProp.get().getFilter().validateSize(_size.get())) {
      results.error(_size, _filterMethodProp.get().getFilter().getMessage());
    }

    // Check if an entry already exists in the datastore.
    if (!_inputGrid.isNull() && !_outputGridName.isEmpty()) {
      if (Grid3dFactory.existsInStore(_inputGrid.get(), _outputGridName.get())) {
        results.warning(_outputGridName, "Exists in datastore and will be overwritten.");
      }
    }
  }
 /**
  * Gets the radius to render the well bore.
  *
  * @return the well bore radius.
  */
 public int getBoreRadius() {
   return _size.get();
 }