public Object getValue(String key) {
		if (key.equalsIgnoreCase("state")) {
			switch (type) {
			case ToggleFieldAction.E_FIELD:
				ElectricField ef = (ElectricField) model.getNonLocalField(ElectricField.class.getName());
				if (ef != null) {
					int i = 0;
					switch (ef.getOrientation()) {
					case VectorField.WEST:
						i = 1;
						break;
					case VectorField.NORTH:
						i = 2;
						break;
					case VectorField.SOUTH:
						i = 3;
						break;
					}
					return EWNS[i];
				}
				break;
			case ToggleFieldAction.B_FIELD:
				MagneticField bf = (MagneticField) model.getNonLocalField(MagneticField.class.getName());
				if (bf != null) {
					return bf.getOrientation() == VectorField.INWARD ? IO[0] : IO[1];
				}
				break;
			}
		}
		return super.getValue(key);
	}