---
title: Overview
order: 1
layout: page
---
[[getting-started.overview]]
= Overview
Once you have installed a development environment, as described in the previous chapter, creating a Vaadin project proceeds in the IDE that you have chosen.
The Vaadin core library and all Vaadin add-ons are available through Maven, a commonly used build and dependency management system.
The recommended way to create a Vaadin application project is to use a Maven archetype.
The archetypes contain all the needed dependencies, which Maven takes care of.
The Eclipse IDE plugin currently also supports creating a normal Eclipse web project using the Ivy dependency manager.
In this chapter, we:
* Give an overview of the Vaadin libraries
* List the available Maven archetypes
* Give step-by-step instructions for creating a project in the Eclipse IDE, NetBeans IDE, and IntelliJ IDEA, as well as with command-line.
lue='7.2'>7.2
Vaadin 6, 7, 8 is a Java framework for modern Java web applications: https://github.com/vaadin/framework
/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */packagecom.vaadin.ui;importjava.io.Serializable;importcom.vaadin.shared.ui.AlignmentInfo.Bits;/** * Class containing information about alignment of a component. Use the * pre-instantiated classes. */@SuppressWarnings("serial")publicfinalclassAlignmentimplementsSerializable{publicstaticfinalAlignmentTOP_RIGHT=newAlignment(Bits.ALIGNMENT_TOP+Bits.ALIGNMENT_RIGHT);publicstaticfinalAlignmentTOP_LEFT=newAlignment(Bits.ALIGNMENT_TOP+Bits.ALIGNMENT_LEFT);publicstaticfinalAlignmentTOP_CENTER=newAlignment(Bits.ALIGNMENT_TOP+Bits.ALIGNMENT_HORIZONTAL_CENTER);publicstaticfinalAlignmentMIDDLE_RIGHT=newAlignment(Bits.ALIGNMENT_VERTICAL_CENTER+Bits.ALIGNMENT_RIGHT);publicstaticfinalAlignmentMIDDLE_LEFT=newAlignment(Bits.ALIGNMENT_VERTICAL_CENTER+Bits.ALIGNMENT_LEFT);publicstaticfinalAlignmentMIDDLE_CENTER=newAlignment(Bits.ALIGNMENT_VERTICAL_CENTER+Bits.ALIGNMENT_HORIZONTAL_CENTER);publicstaticfinalAlignmentBOTTOM_RIGHT=newAlignment(Bits.ALIGNMENT_BOTTOM+Bits.ALIGNMENT_RIGHT);publicstaticfinalAlignmentBOTTOM_LEFT=newAlignment(Bits.ALIGNMENT_BOTTOM+Bits.ALIGNMENT_LEFT);publicstaticfinalAlignmentBOTTOM_CENTER=newAlignment(Bits.ALIGNMENT_BOTTOM+Bits.ALIGNMENT_HORIZONTAL_CENTER);privatefinalintbitMask;publicAlignment(intbitMask){this.bitMask=bitMask;}/** * Returns a bitmask representation of the alignment value. Used internally * by terminal. * * @return the bitmask representation of the alignment value */publicintgetBitMask(){returnbitMask;}/** * Checks if component is aligned to the top of the available space. * * @return true if aligned top */publicbooleanisTop(){return(bitMask&Bits.ALIGNMENT_TOP)==Bits.ALIGNMENT_TOP;}/** * Checks if component is aligned to the bottom of the available space. * * @return true if aligned bottom */publicbooleanisBottom(){return(bitMask&Bits.ALIGNMENT_BOTTOM)==Bits.ALIGNMENT_BOTTOM;}/** * Checks if component is aligned to the left of the available space. * * @return true if aligned left */publicbooleanisLeft(){return(bitMask&Bits.ALIGNMENT_LEFT)==Bits.ALIGNMENT_LEFT;}/** * Checks if component is aligned to the right of the available space. * * @return true if aligned right */publicbooleanisRight(){return(bitMask&Bits.ALIGNMENT_RIGHT)==Bits.ALIGNMENT_RIGHT;}/** * Checks if component is aligned middle (vertically center) of the * available space. * * @return true if aligned bottom */publicbooleanisMiddle(){return(bitMask&Bits.ALIGNMENT_VERTICAL_CENTER)==Bits.ALIGNMENT_VERTICAL_CENTER;}/** * Checks if component is aligned center (horizontally) of the available * space. * * @return true if aligned center */publicbooleanisCenter(){return(bitMask&Bits.ALIGNMENT_HORIZONTAL_CENTER)==Bits.ALIGNMENT_HORIZONTAL_CENTER;}/** * Returns string representation of vertical alignment. * * @return vertical alignment as CSS value */publicStringgetVerticalAlignment(){if(isBottom()){return"bottom";}elseif(isMiddle()){return"middle";}return"top";}/** * Returns string representation of horizontal alignment. * * @return horizontal alignment as CSS value */publicStringgetHorizontalAlignment(){if(isRight()){return"right";}elseif(isCenter()){return"center";}return"left";}@Overridepublicbooleanequals(Objectobj){if(this==obj){returntrue;}if((obj==null)||(obj.getClass()!=this.getClass())){returnfalse;}Alignmenta=(Alignment)obj;returnbitMask==a.bitMask;}@OverridepublicinthashCode(){returnbitMask;}@OverridepublicStringtoString(){returnString.valueOf(bitMask);}}