コード例 #1
0
  /** Initialize attribute types and listeners. */
  private void init() {

    // Initialize attribute types and their default visibility
    addProducerType(
        new AttributeType(this, "Neuron Activation", "getActivation", double.class, true));
    addProducerType(
        new AttributeType(this, "Neuron Upper Bound", "getUpperBound", double.class, false));
    addProducerType(
        new AttributeType(this, "Neuron Lower Bound", "getLowerBound", double.class, false));
    addProducerType(new AttributeType(this, "Neuron Label", "getLabel", String.class, false));
    addProducerType(new AttributeType(this, "Synapse", "getStrength", double.class, false));
    addProducerType(
        new AttributeType(
            this, "NeuronGroupActivations", "getExternalActivations", double[].class, true));
    addProducerType(
        new AttributeType(this, "NeuronGroupSpikes", "getSpikeIndexes", double[].class, true));
    addProducerType(
        new AttributeType(this, "SynapseGroup", "getWeightVector", double[].class, true));

    addConsumerType(
        new AttributeType(this, "Neuron Input Value", "setInputValue", double.class, true));
    addConsumerType(
        new AttributeType(this, "Neuron Activation", "setActivation", double.class, false));
    addConsumerType(
        new AttributeType(this, "Neuron Upper Bound", "setUpperBound", double.class, false));
    addConsumerType(
        new AttributeType(this, "Neuron Lower Bound", "setLowerBound", double.class, false));
    addConsumerType(new AttributeType(this, "Neuron Label", "setLabel", String.class, false));
    addConsumerType(new AttributeType(this, "Synapse", "setStrength", double.class, false));
    addConsumerType(new AttributeType(this, "NeuronGroup", "setInputValues", double[].class, true));
    addConsumerType(
        new AttributeType(this, "SynapseGroup", "setWeightVector", double[].class, false));

    network.addNeuronListener(
        new NeuronListener() {
          /** {@inheritDoc} */
          public void neuronAdded(NetworkEvent<Neuron> e) {
            setChangedSinceLastSave(true);
            firePotentialAttributesChanged();
          }

          /** {@inheritDoc} */
          public void neuronTypeChanged(NetworkEvent<NeuronUpdateRule> e) {
            setChangedSinceLastSave(true);
          }

          /** {@inheritDoc} */
          public void neuronMoved(NetworkEvent<Neuron> e) {
            setChangedSinceLastSave(true);
          }

          /** {@inheritDoc} */
          public void neuronRemoved(NetworkEvent<Neuron> e) {
            setChangedSinceLastSave(true);
            firePotentialAttributesChanged();
            fireAttributeObjectRemoved(e.getObject());
          }

          @Override
          public void neuronChanged(NetworkEvent<Neuron> e) {
            setChangedSinceLastSave(true);
          }

          @Override
          public void labelChanged(NetworkEvent<Neuron> e) {
            setChangedSinceLastSave(true);
          }
        });

    network.addSynapseListener(
        new SynapseListener() {

          public void synapseAdded(NetworkEvent<Synapse> networkEvent) {
            setChangedSinceLastSave(true);
            firePotentialAttributesChanged();
          }

          public void synapseChanged(NetworkEvent<Synapse> networkEvent) {
            setChangedSinceLastSave(true);
            firePotentialAttributesChanged();
          }

          public void synapseRemoved(NetworkEvent<Synapse> networkEvent) {
            setChangedSinceLastSave(true);
            firePotentialAttributesChanged();
          }

          public void synapseTypeChanged(NetworkEvent<SynapseUpdateRule> networkEvent) {
            setChangedSinceLastSave(true);
          }
        });
  }